diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b2d6de3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# Dependencies +/node_modules + +# Production +/build + +# Generated files +.docusaurus +.cache-loader + +# Misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..1b53066 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,14 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.2.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-yaml + - id: check-added-large-files + - repo: https://github.com/pre-commit/mirrors-prettier + rev: v2.2.1 + hooks: + - id: prettier diff --git a/README.md b/README.md new file mode 100644 index 0000000..aaba2fa --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# Website + +This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. + +### Installation + +``` +$ yarn +``` + +### Local Development + +``` +$ yarn start +``` + +This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. + +### Build + +``` +$ yarn build +``` + +This command generates static content into the `build` directory and can be served using any static contents hosting service. + +### Deployment + +Using SSH: + +``` +$ USE_SSH=true yarn deploy +``` + +Not using SSH: + +``` +$ GIT_USER= yarn deploy +``` + +If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..bfd75db --- /dev/null +++ b/babel.config.js @@ -0,0 +1,3 @@ +module.exports = { + presets: [require.resolve("@docusaurus/core/lib/babel/preset")], +}; diff --git a/docusaurus.config.js b/docusaurus.config.js new file mode 100644 index 0000000..8d6b15b --- /dev/null +++ b/docusaurus.config.js @@ -0,0 +1,175 @@ +// @ts-check +// Note: type annotations allow type checking and IDEs autocompletion + +const lightCodeTheme = require("prism-react-renderer/themes/vsLight"); +const darkCodeTheme = require("prism-react-renderer/themes/dracula"); + +const math = require("remark-math"); +const katex = require("rehype-katex"); + +require("dotenv").config(); + +/** @type {import('@docusaurus/types').Config} */ +const config = { + title: "Additional materials by mf", + tagline: "Additional materials", + url: process.env.URL, + baseUrl: process.env.BASE_URL, + onBrokenLinks: "warn", + onBrokenMarkdownLinks: "warn", + favicon: "img/favicon.ico", + + i18n: { + defaultLocale: "en", + locales: ["en", "cs"], + }, + + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + path: "ib002", + routeBasePath: "ib002", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://gitlab.fi.muni.cz/xfocko/kb/tree/main", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + blog: false, + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }), + ], + ], + + plugins: [ + [ + "@docusaurus/plugin-content-docs", + { + id: "ib015", + path: "ib015", + routeBasePath: "ib015", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://gitlab.fi.muni.cz/xfocko/kb/tree/main", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + ], + [ + "@docusaurus/plugin-content-docs", + { + id: "ib110", + path: "ib110", + routeBasePath: "ib110", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://gitlab.fi.muni.cz/xfocko/kb/tree/main", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + ], + [ + "@docusaurus/plugin-content-docs", + { + id: "pb071", + path: "pb071", + routeBasePath: "pb071", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://gitlab.fi.muni.cz/xfocko/kb/tree/main", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + ], + [ + "@docusaurus/plugin-content-docs", + { + id: "pb161", + path: "pb161", + routeBasePath: "pb161", + sidebarPath: require.resolve("./sidebars.js"), + editUrl: "https://gitlab.fi.muni.cz/xfocko/kb/tree/main", + remarkPlugins: [math], + rehypePlugins: [katex], + }, + ], + ], + + stylesheets: [ + { + href: "https://cdn.jsdelivr.net/npm/katex@0.13.24/dist/katex.min.css", + type: "text/css", + integrity: + "sha384-odtC+0UGzzFL/6PNoE8rX/SPcQDXBJ+uRepguP4QkPCm2LBxH3FA3y+fKSiJ+AmM", + crossorigin: "anonymous", + }, + ], + + themeConfig: + /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ + ({ + navbar: { + title: "Additional materials by mf", + items: [ + { + type: "doc", + docId: "ib002-intro", + position: "left", + label: "IB002", + }, + // { + // type: "doc", + // docId: "ib015-intro", + // docsPluginId: "ib015", + // position: "left", + // label: "IB015", + // }, + // { + // type: "doc", + // docId: "ib110-intro", + // docsPluginId: "ib110", + // position: "left", + // label: "IB110", + // }, + { + type: "doc", + docId: "pb071-intro", + docsPluginId: "pb071", + position: "left", + label: "PB071", + }, + { + type: "doc", + docId: "pb161-intro", + docsPluginId: "pb161", + position: "left", + label: "PB161", + }, + { + href: "https://gitlab.fi.muni.cz/xfocko/fi", + label: "GitLab", + position: "right", + }, + ], + }, + footer: { + style: "dark", + copyright: `Copyright © ${new Date().getFullYear()} Matej Focko.`, + }, + prism: { + theme: lightCodeTheme, + darkTheme: darkCodeTheme, + additionalLanguages: [ + "csharp", + "java", + "dot", + "nix", + "haskell", + "rust", + ], + }, + }), +}; + +module.exports = config; diff --git a/ib002/00-intro-ib002.md b/ib002/00-intro-ib002.md new file mode 100644 index 0000000..555daf9 --- /dev/null +++ b/ib002/00-intro-ib002.md @@ -0,0 +1,14 @@ +--- +id: ib002-intro +title: Introduction +slug: /intro +--- + +In this part you can find „random“ additional materials I have written over the +course of teaching _Algorithms and data structures I_. + +It is a various mix of stuff that may have been produced as a follow-up on some +question asked at the seminar or spontanously. + +If you have some ideas for posts, please do not hesitate to submit them as issues +in the linked [GitLab](https://gitlab.fi.muni.cz/xfocko/kb/issues). diff --git a/ib002/01-introduction/_category_.yaml b/ib002/01-introduction/_category_.yaml new file mode 100644 index 0000000..0322c3b --- /dev/null +++ b/ib002/01-introduction/_category_.yaml @@ -0,0 +1,7 @@ +label: Introduction, linked list, queue and stack +position: 1 +link: + type: generated-index + description: | + Materials related to basic data structures such as linked list, queue or + stack. diff --git a/ib002/02-algorithms-correctness/_category_.yaml b/ib002/02-algorithms-correctness/_category_.yaml new file mode 100644 index 0000000..63095c8 --- /dev/null +++ b/ib002/02-algorithms-correctness/_category_.yaml @@ -0,0 +1,7 @@ +label: Algorithms and correctness +position: 2 +link: + type: generated-index + description: | + Materials related to basic ideas behind algorithms and proofs of their + correctness. diff --git a/ib002/02-algorithms-correctness/postcondition-ambiguity.md b/ib002/02-algorithms-correctness/postcondition-ambiguity.md new file mode 100644 index 0000000..fa8af4a --- /dev/null +++ b/ib002/02-algorithms-correctness/postcondition-ambiguity.md @@ -0,0 +1,333 @@ +--- +title: Vague postconditions and proving correctness of algorithms +description: | + Practical example that shows how precise postconditions can help with both + debugging and testing of the code. +--- + +## Introduction + +[Source code](pathname:///files/ib002/postcondition-ambiguity/test_sort.py) used later on. + +## Implementation of select sort from the exercises + +To implement select sort from the exercises and make it as easy to read as possible, I have implemented maximum function that returns index of the biggest element from the first $n$ elements. + +For the sake of time and memory complexity, I am also using `itertools.islice`, which makes a slice, but does not copy the elements into the memory like normal slice does. + +There is also a `check_loop_invariant` function that will be described later. + +```py showLineNumbers +def compare_by_value(pair): + index, value = pair + return value + + +def maximum(arr, n): + first_n_elements = itertools.islice(enumerate(arr), n) + index, value = max(first_n_elements, key=compare_by_value) + return index + + +def select_sort(arr, n): + assert n == len(arr) + + check_loop_invariant(arr, n, n) + for i in reversed(range(1, n)): + j = maximum(arr, i + 1) + arr[i], arr[j] = arr[j], arr[i] + + check_loop_invariant(arr, n, i) + + return arr +``` + +## Discussed preconditions, loop invariants and postconditions + +You can safely replace `A` with `arr` or array for list. + +### Precondition + +As a precondition we have established that `A` represents an array of values and $n$ is length of the `A`. + +### Loop invariant + +As for loop invariant we have established that we require two properties: + +1. `A[i + 1 : n]` is sorted +2. all elements of `A[i + 1 : n]` are bigger or equal to the other elements + +This invariant is later defined as `check_loop_invariant` function. It is checked before the first iteration and after each iteration. + +### Postcondition + +For the postcondition the first suggestion was that `A` must be sorted. And later we have added that `A'` must be a permutation of `A`. + +> However at the end of the session question arose if it is really required to state in the postcondition that `A'` is a permutation. + +## So is the permutation really required? + +As I have said it is better to have postconditions explicit and do not expect anything that is not stated explicitly, e.g. _name suggests it_. In reality we could consider it as a smaller mistake (but it has consequences). + +On the other hand explicit postconditions can be used to our advantage **and also** help our proof of correctness. + +Consequences: + +1. Property-based testing + + If we have explicit postconditions we can use them to define properties of the output from our algorithms. That way we can use property-based testing, which does not depend on specific inputs and expected outputs, but rather on randomly generated input and checking if the output conforms to our expectations (the postconditions are fulfilled). + +2. Proof of correctness + + If we can prove that algorithm is correct even for algorithm that **is not** correct, we have a problem. That proof has no value and is useless. + +For the sake of showcasing the power of postconditions I will introduce "select sort" that is not correct, but will comply with both the loop invariant and our vague postcondition and thus pass the tests. + +## Implementation of the broken select sort + +To make sure this thing passes everything, but our explicit postcondition with permutation will _blow it up_, I have designed this "select sort" as follows: + +1. If I get empty list, there is nothing to do. +2. I find maximum in the array. +3. For each index from the end, I will assign `maximum + index`. + This will ensure that even if the maximum in the original array was the first element, I will always satisfy that 2nd part of the loop invariant. + +```py showLineNumbers +def broken_select_sort(arr, n): + assert n == len(arr) + + if not arr: + return + + max_value = max(arr) + + check_loop_invariant(arr, n, n) + for i in reversed(range(n)): + arr[i] = max_value + i + + check_loop_invariant(arr, n, i) + + return arr +``` + +:::tip + +There is also an easier way to break this, I leave that as an exercise ;) + +::: + +## Property-based tests for our sorts + +Since we have talked a lot about proofs at the seminar, I would like to demonstrate it on the testing of the sorts. In the following text I will cover implementation of the loop invariant and both postconditions we have talked about and then test our sorts using them. + +### Loop invariant + +To check loop invariant I have implemented this function: + +```py showLineNumbers +def check_loop_invariant(arr, n, i): + # A[i + 1 : n] is sorted + for x, y in zip(itertools.islice(arr, i + 1, n), itertools.islice(arr, i + 2, n)): + assert x <= y + + # all elements of A[i + 1 : n] are bigger or equal to the other elements + if i + 1 >= n: + # in case there are no elements + return + + # otherwise, since the "tail" is sorted, we can assume that it is enough to + # check the other elements to the smallest value of the tail + smallest = arr[i + 1] + for element in itertools.islice(arr, i + 1): + assert smallest >= element +``` + +First part checks if the "ending" of the array is sorted. + +In second part I have used a _dirty trick_ of taking just the first element that is the smallest and compared the rest of the elements to it. Why is it enough? I leave it as an exercise ;) + +### Postcondition(s) + +I have defined both the vague and explicit postconditions: + +```py showLineNumbers +def check_vague_postcondition(original_arr, arr): + if not arr: + return + + # check ordering + for x, y in zip(arr, itertools.islice(arr, 1, len(arr))): + assert x <= y + + +def check_postcondition(original_arr, arr): + if not arr: + return + + # check ordering + for x, y in zip(arr, itertools.islice(arr, 1, len(arr))): + assert x <= y + + # get counts from original list + original_counts = {} + for value in original_arr: + original_counts[value] = 1 + original_counts.get(value, 0) + + # get counts from resulting list + counts = {} + for value in arr: + counts[value] = 1 + counts.get(value, 0) + + # if arr is permutation of original_arr then all counts must be the same + assert counts == original_counts +``` + +### Putting it together + +Now that we have everything implement, we can move on to the implementation of the tests: + +```py showLineNumbers +from hypothesis import given, settings +from hypothesis.strategies import integers, lists +import pytest + +@given(lists(integers())) +@settings(max_examples=1000) +@pytest.mark.parametrize( + "postcondition", [check_vague_postcondition, check_postcondition] +) +@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort]) +def test_select_sort(sorting_function, postcondition, numbers): + result = sorting_function(numbers[:], len(numbers)) + postcondition(numbers, result) +``` + +Since it might seem a bit scary, I will disect it by parts. + +1. Parameters of test function + + ```py showLineNumbers + def test_select_sort(sorting_function, postcondition, numbers): + ``` + + We are given 3 parameters: + + - `sorting_function` - as the name suggests is the sorting function we test + - `postcondition` - as the name suggests is the postcondition that we check + - `numbers` - is random list of numbers that we will be sorting + +2. Body of the test + + ```py showLineNumbers + result = sorting_function(numbers[:], len(numbers)) + postcondition(numbers, result) + ``` + + We pass to the sorting function **copy** of the numbers we got, this ensures that once we are checking the more strict postcondition, we can gather the necessary information even after sorting the list in-situ, i.e. we can check if the `result` is really a `permutation` of the `numbers` even though the sorting functions has modified the passed in list. + +:::caution + +Now we get to the more complicated part and it is the _decorators_. + +::: + +3. 1st `parametrize` from the bottom + + ```py showLineNumbers + @pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort]) + ``` + + This tells pytest, that we want to pass the values from the list to the parameter `sorting_function`. In other words, this lets us use the same test function for both the correct and incorrect select sort. + +4. 2nd `parametrize` from the bottom is similar, but works with the postcondition. + The reason why they are separated is pretty simple, this way they act like cartesian product: for each sorting function we also use each postcondition. + +5. `@settings` raises the count of tests that hypothesis runs (from default of 100(?)). + +6. `@given(lists(integers()))` + This means hypothesis is randomly creating lists of integers and passing them to the function, which has only one parameter left and that is `numbers`. + +### Let's run the tests! + +In case you want to experiment locally, you should install `pytest` and `hypothesis` from the PyPI. + +``` +% pytest -v test_sort.py +=================================== test session starts ==================================== +platform linux -- Python 3.6.8, pytest-3.8.2, py-1.7.0, pluggy-0.13.1 -- /usr/bin/python3 +cachedir: .pytest_cache +rootdir: /home/xfocko/git/xfocko/ib002/postcondition-ambiguity, inifile: +plugins: hypothesis-5.16.1 +collected 4 items + +test_sort.py::test_select_sort[select_sort-check_vague_postcondition] PASSED [ 25%] +test_sort.py::test_select_sort[select_sort-check_postcondition] PASSED [ 50%] +test_sort.py::test_select_sort[broken_select_sort-check_vague_postcondition] PASSED [ 75%] +test_sort.py::test_select_sort[broken_select_sort-check_postcondition] FAILED [100%] + +========================================= FAILURES ========================================= +_________________ test_select_sort[broken_select_sort-check_postcondition] _________________ + +sorting_function = +postcondition = + + @given(lists(integers())) +> @settings(max_examples=1000) + @pytest.mark.parametrize( + "postcondition", [check_vague_postcondition, check_postcondition] + ) + @pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort]) + def test_select_sort(sorting_function, postcondition, numbers): + +test_sort.py:132: +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ +test_sort.py:139: in test_select_sort + postcondition(numbers, result) +_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + +original_arr = [0, 0], arr = [0, 1] + + def check_postcondition(original_arr, arr): + if not arr: + return + + # check ordering + for x, y in zip(arr, itertools.islice(arr, 1, len(arr))): + assert x <= y + + # get counts from original list + original_counts = {} + for value in original_arr: + original_counts[value] = 1 + original_counts.get(value, 0) + + # get counts from resulting list + counts = {} + for value in arr: + counts[value] = 1 + counts.get(value, 0) + + # if arr is permutation of original_arr then all counts must be the same +> assert counts == original_counts +E assert {0: 1, 1: 1} == {0: 2} +E Differing items: +E {0: 1} != {0: 2} +E Left contains more items: +E {1: 1} +E Full diff: +E - {0: 1, 1: 1} +E + {0: 2} + +test_sort.py:128: AssertionError +----------------------------------- Captured stdout call ----------------------------------- +Falsifying example: test_select_sort( + sorting_function=, + postcondition=, + numbers=[0, 0], +) +============================ 1 failed, 3 passed in 6.84 seconds ============================ +``` + +We can clearly see that our broken select sort has passed the _vague postcondition_, but the explicit one was not satisfied. + +## Summary + +For proving the correctness of the algorithm it is better to be explicit than prove that algorithm is correct even though it is not. Being explicit also allows you to test smaller _chunks_ of code better. diff --git a/ib002/03-time-complexity/_category_.yaml b/ib002/03-time-complexity/_category_.yaml new file mode 100644 index 0000000..741f7f1 --- /dev/null +++ b/ib002/03-time-complexity/_category_.yaml @@ -0,0 +1,6 @@ +label: Asymptotic notation and time complexity +position: 3 +link: + type: generated-index + description: | + Materials related to asymptotic notation and time complexity. diff --git a/ib002/03-time-complexity/extend.md b/ib002/03-time-complexity/extend.md new file mode 100644 index 0000000..8dd2392 --- /dev/null +++ b/ib002/03-time-complexity/extend.md @@ -0,0 +1,159 @@ +--- +title: Time complexity of ‹extend› +description: | + Hidden time complexity behind commonly used functions on lists and how can + repeating of a relatively cheap operation increase its time complexity. +--- + +## Introduction + +Each year there is a lot of confusion regarding time complexity of the `extend` operation on the lists in Python. I will introduce two specific examples from previous year and also will try to explain it on one of the possible implementations of `extend` operation. + +## Technicalities + +At the beginning we should clear some of the „myths“ regarding extending of the lists. There is a common misunderstanding regarding differences between `a += b`, `a.extend(b)` and `a + b`. + +- `a.extend(b)` - adds all elements from `b` to `a`. + + Time complexity: $\mathcal{O}(n)$, where $n$ denotes the length of `b`. + +- `a += b` - equivalent to `a.extend(b)` + +- `a + b` - constructs a new list that contains elements from `a` followed by + elements from `b`. + + Time complexity: $\mathcal{O}(m + n)$, where $m, n$ denote the length of + `a` and `b` respectively. + + Space complexity: $\mathcal{O}(m + n)$, where $m, n$ denote the length of + `a` and `b` respectively, since we construct new list. + +## Example #1 + +Let us assume function that uses divide & conquer strategy to return indices at which we can find specific element in any list. + +```py showLineNumbers +def recursive_find_in_list( + values: List[Any], key: Any, lower: int, upper: int +) -> List[int]: + if lower == upper: + return [lower] if values[lower] == key else [] + + indices = [] + mid = (lower + upper) // 2 + + indices.extend(recursive_find_in_list(values, key, lower, mid)) + indices.extend(recursive_find_in_list(values, key, mid + 1, upper)) + + return indices + + +def find_in_list(values: List[Any], key: Any) -> List[int]: + return recursive_find_in_list(values, key, 0, len(values) - 1) +``` + +This implementation works nicely, `extend` is linear (with the respect to the length of the list that is being appended). + +Let us try to dissect the way this function works on some specific input (that will be pushed to the extreme, _just in case_ ;) + +`find_in_list([1] * 5000, 1)`. What shall be the result of this? Since we have `key = 1` and the list contains only `1`s, we should get list of **all** indices. + +If we were to draw a tree of call hierarchy of `recursive_find_in_list`, we would notice that in sum it is still linear to the length. **However we use `extend`!** + +In the leaves of the tree we return lists of length 1. In this case it means calling `extend` 5000-times at the second-to-last level of the tree on the 1-element long lists, next level 2500 calls on 2-elements long lists, next one 1250 on 4-elements long lists, etc. At the top-level we get 2 calls on 5000/2-element long lists. + +A lot of `extend` calls, right? And the lengths of the lists are growing (in this example, second call happens on 2500-elements long lists). + +Because of the `extend` in each level of the tree (call hierarchy) we traverse all of the elements. That means: + +$$ +\mathcal{O}(n \cdot \log n) +$$ + +because we have $\log n$ levels in the tree and $n$ elements at each level. + +## Example #2 + +As we could observe in the example above, `extend` iterates over all of the elements that it adds. In case of recursive calls, it results in iterating over the same elements multiple times. + +Consider constructing of this list: + +![Rendered construction of the list](/files/ib002/extend/rendered.svg) + +
+Source for the rendered construction of the list + +```dot +digraph G { + node [shape=record]; + + a_node [label="1|2|3|4|5|6|7|8|9"] + + b_node [label="1|2|3"] + c_node [label="4|5|6"] + d_node [label="7|8|9"] + + a_node -> b_node [label="B"] + a_node -> c_node [label="C"] + a_node -> d_node [label="D"] + + b_node -> "1" + b_node -> "2" + b_node -> "3" + + c_node -> "4" + c_node -> "5" + c_node -> "6" + + d_node -> "7" + d_node -> "8" + d_node -> "9" +} +``` + +
+ +Let us assume that you extend the result with the list that you get from the recursive call. + +- B iterates through 1, 2 and 3; returns `[1, 2, 3]` +- C iterates through 4, 5 and 6; returns `[4, 5, 6]` +- D iterates through 7, 8 and 9; returns `[7, 8, 9]` +- now we return those lists to the calls from A), so each of the `extend` calls iterates through: + + - 1, 2, 3 that was returned from B + - 4, 5, 6 that was returned from C + - 7, 8, 9 that was returned from D + + and returns `[1, 2, 3, 4, 5, 6, 7, 8, 9]` + +If the recursion had bigger depth and/or more elements, it would iterate through them more than twice, therefore it does not take constant time to do nor some constant multiple of the input, since it traverses all of the elements in each of the levels. + +## Implementation of `extend` + +There is an example of dynamic array: + +- [interface (`dynlist.h`)](pathname:///files/ib002/extend/dynlist.h) +- [implementation (`dynlist.c`)](pathname:///files/ib002/extend/dynlist.c) + +For the sake of _Algorithms and Data Structures I_ we consider `APPEND` operation, i.e. adding the element to the end of the list, to have time complexity $\mathcal{O}(1)$ (**amortized**; which is out of the scope of IB002). + +If we have a look at the `extend` implementation in this dynamic array example: + +```c showLineNumbers +void dynamic_array_extend(struct dynamic_array_t *arr, struct dynamic_array_t *src) +{ + if (arr == NULL || src == NULL) + { + return; + } + + for (size_t i = 0; i < src->count; i++) + { + dynamic_array_push_back(arr, dynamic_array_at(src, i)); + } +} +``` + +Apart from checking edge cases, we can notice that we run `for`-loop over the elements from the other array and add them one-by-one to the `arr`. Time complexity of this operation is time dependant on the `src` array. + +In this specific implementation, you could also resize the memory allocated for the array in one go and copy _whole_ `src` array in one go. However even if you did so, it would be still dependant on the size of the `src` array. Cause you still need to copy $\texttt{count}(src) \cdot \texttt{elementSize}(src)$ bytes. From that we can assume that for specific instance of array the $\texttt{elementSize}(src)$ is fixed, therefore we consider it a constant. That way we are getting $\mathcal{O}(\texttt{count}(src))$ as a time complexity of our `extend` operation. diff --git a/ib002/04-recursion/_category_.yaml b/ib002/04-recursion/_category_.yaml new file mode 100644 index 0000000..e115145 --- /dev/null +++ b/ib002/04-recursion/_category_.yaml @@ -0,0 +1,6 @@ +label: Recursion +position: 4 +link: + type: generated-index + description: | + Materials related to recursive algorithms and their time complexity. diff --git a/ib002/05-sorting/_category_.yaml b/ib002/05-sorting/_category_.yaml new file mode 100644 index 0000000..578aa07 --- /dev/null +++ b/ib002/05-sorting/_category_.yaml @@ -0,0 +1,6 @@ +label: Sorting algorithms +position: 5 +link: + type: generated-index + description: | + Materials related to sorting algorithms and their modifications. diff --git a/ib002/06-heap-priority-queue/_category_.yaml b/ib002/06-heap-priority-queue/_category_.yaml new file mode 100644 index 0000000..ce97aa8 --- /dev/null +++ b/ib002/06-heap-priority-queue/_category_.yaml @@ -0,0 +1,7 @@ +label: Heap and priority queue +position: 6 +link: + type: generated-index + description: | + Materials related to the heap data structure and its usage for a priority + queue. diff --git a/ib002/07-bst/_category_.yaml b/ib002/07-bst/_category_.yaml new file mode 100644 index 0000000..36b7773 --- /dev/null +++ b/ib002/07-bst/_category_.yaml @@ -0,0 +1,6 @@ +label: Binary search trees +position: 7 +link: + type: generated-index + description: | + Materials related to binary search trees and algorithms on them. diff --git a/ib002/08-rb-trees/_category_.yaml b/ib002/08-rb-trees/_category_.yaml new file mode 100644 index 0000000..73f1331 --- /dev/null +++ b/ib002/08-rb-trees/_category_.yaml @@ -0,0 +1,6 @@ +label: Red-black trees +position: 8 +link: + type: generated-index + description: | + Materials related to red-black trees. diff --git a/ib002/08-rb-trees/applications.md b/ib002/08-rb-trees/applications.md new file mode 100644 index 0000000..5a016ee --- /dev/null +++ b/ib002/08-rb-trees/applications.md @@ -0,0 +1,328 @@ +--- +title: Použití červeno-černých stromů +description: | + Ukázka použití červeno-černých stromů pro implementaci množiny nebo mapy + a ukázky jednotlivých implementací ve standardních knižnicích známých jazyků. +--- + +## Použití + +Červeno-černé stromy jsou celkem oblíbené pro implementaci ADT množiny nebo slovníku za předpokladu, že nad vkládanými klíči existuje uspořádání. Jazyky níže implementují dané datové struktury v 2 variantách a to: + +- seřazené: používají na pozadí právě červeno-černý strom +- neseřazené: používají na pozadí hašovací tabulku + +Pro srovnání, jak jsme si říkali na cvičení, červeno-černý strom má operace hledání, vkládání a mazání v časové složitosti $\mathcal{O}(\log n)$. Na druhou stranu hašovací tabulka má ideálně konstantní časovou složitost, ale v nejhorším případě (detaily na posledním cvičení v semestru) je to bohužel $\mathcal{O}(n)$. + +Výše jsme si ukázali nějaké předpoklady nutné pro hašovací tabulku i červeno-černý strom. Co je tedy lepší? + +- červeno-černý strom nám poskytuje _stabilní časovou složitost_, ale za cenu požadavku _uspořádání_ nad prvky +- hašovací tabulka nám poskytuje _pomyslnou perfektní časovou složitost_ + +## Různé implementace + +Pro ukázku použití červeno-černých stromů v implementacích standardních knihoven +jsme vybrali několik jazyků. + +Pokud Vás zajímají různé implementace, tak bychom doporučili „prohrabávat“ se přes ně v následujícím pořadí: `C# → Java → C++`. Důvod pro zvolené pořadí vychází z toho, že C# implementace je poměrně čitelná a obsahuje množství vysvětlujících komentářů. Implementace v Javě je stejně čitelná, ačkoli již s minimem komentářů, které se maximálně odkazují na CLRS. C++ implementace je „značně poznačená“ podtržítky ;) + +### C++ + +V C++ si můžeme vybrat mezi 2 různými implementacemi (`clang` nebo `gcc`). + +#### clang + +Hlavičkové soubory, které používáme při práci s množinou nebo slovníkem (zajímavé sekce jsou vytaženy): + +- [`map`](https://github.com/llvm/llvm-project/blob/main/libcxx/include/map) + + ```cpp + template , + class _Allocator = allocator > > + class _LIBCPP_TEMPLATE_VIS map + { + public: + // types: + typedef _Key key_type; + typedef _Tp mapped_type; + typedef pair value_type; + + // … + + private: + typedef __tree<__value_type, __vc, __allocator_type> __base; + ``` + +- [`set`](https://github.com/llvm/llvm-project/blob/main/libcxx/include/set) + + ```cpp + template , + class _Allocator = allocator<_Key> > + class _LIBCPP_TEMPLATE_VIS set + { + public: + // types: + typedef _Key key_type; + typedef key_type value_type; + + // … + + private: + typedef __tree __base; + ``` + +U obou hlaviček si můžeme všimnout, že deklarují nějaký soukromý typ `__base`, který je aliasem pro `__tree`. Ten nás pak vede k hlavičce [`__tree`](https://github.com/llvm/llvm-project/blob/main/libcxx/include/__tree). + +Výňatek: + +```cpp +/* + +_NodePtr algorithms + +The algorithms taking _NodePtr are red black tree algorithms. Those +algorithms taking a parameter named __root should assume that __root +points to a proper red black tree (unless otherwise specified). + +… + +*/ +``` + +#### gcc + +Pro `gcc` je postup téměř stejný. Pro změnu v hlavičkách `map` a `set` nenajdeme nic, deklarace jsou až v hlavičkových souborech: + +- [`bits/stl_map.h`](https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_map.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD) +- [`bits/stl_set.h`](https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_set.h;h=9c2b0745673431b4b396ba27982170478838137e;hb=HEAD) + +V obou se zase odkazuje na nějakou hlavičku [`bits/stl_tree.h`](https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/stl_tree.h;h=a4de61417652a288e361a55fcc8bb7a9838c58a5;hb=HEAD), zase výňatek: + +```cpp + // Red-black tree class, designed for use in implementing STL + // associative containers (set, multiset, map, and multimap). The + // insertion and deletion algorithms are based on those in Cormen, + // Leiserson, and Rivest, Introduction to Algorithms (MIT Press, + // 1990), except that + // + // (1) the header cell is maintained with links not only to the root + // but also to the leftmost node of the tree, to enable constant + // time begin(), and to the rightmost node of the tree, to enable + // linear time performance when used with the generic set algorithms + // (set_union, etc.) + // + // (2) when a node being deleted has two children its successor node + // is relinked into its place, rather than copied, so that the only + // iterators invalidated are those referring to the deleted node. + + enum _Rb_tree_color { _S_red = false, _S_black = true }; + + struct _Rb_tree_node_base + { + typedef _Rb_tree_node_base* _Base_ptr; + typedef const _Rb_tree_node_base* _Const_Base_ptr; + + _Rb_tree_color _M_color; + _Base_ptr _M_parent; + _Base_ptr _M_left; + _Base_ptr _M_right; + + static _Base_ptr + _S_minimum(_Base_ptr __x) _GLIBCXX_NOEXCEPT + { + while (__x->_M_left != 0) __x = __x->_M_left; + return __x; + } + + static _Const_Base_ptr + _S_minimum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT + { + while (__x->_M_left != 0) __x = __x->_M_left; + return __x; + } + + static _Base_ptr + _S_maximum(_Base_ptr __x) _GLIBCXX_NOEXCEPT + { + while (__x->_M_right != 0) __x = __x->_M_right; + return __x; + } + + static _Const_Base_ptr + _S_maximum(_Const_Base_ptr __x) _GLIBCXX_NOEXCEPT + { + while (__x->_M_right != 0) __x = __x->_M_right; + return __x; + } +``` + +Tady už taky vidíme nějaký kód pro nalezení minima/maxima ve stromě. Mimo jiné +ještě existuje [`tree.cc`](https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/src/c%2B%2B98/tree.cc;h=fd14991589a57c6aa847f57105a938cd2bf4df6f;hb=HEAD), kde je lze nalézt třeba funkci s následující hlavičkou: + +```cpp +void +_Rb_tree_insert_and_rebalance(const bool __insert_left, + _Rb_tree_node_base* __x, + _Rb_tree_node_base* __p, + _Rb_tree_node_base& __header) throw (); +``` + +### Java + +V Javě jsou pro nás klíčové implementace [`TreeSet`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeSet.java) a [`TreeMap`](https://github.com/openjdk/jdk/blob/master/src/java.base/share/classes/java/util/TreeMap.java). + +V implementaci `TreeSet` si můžete povšimnout: + +```java +public class TreeSet extends AbstractSet + implements NavigableSet, Cloneable, java.io.Serializable +{ + /** + * The backing map. + */ + private transient NavigableMap m; + + // Dummy value to associate with an Object in the backing Map + private static final Object PRESENT = new Object(); +``` + +`TreeSet` v Javě tedy používá na pozadí `TreeMap` (což je vidět ve výchozím konstruktoru, kde se volá konstruktor přebírající `NavigableMap`, a je mu předáno `new TreeMap<>()`). + +Co se týče `TreeMap`, tak hned ze začátku definice `TreeMap` je vidět: + +```java +public class TreeMap + extends AbstractMap + implements NavigableMap, Cloneable, java.io.Serializable +{ + /** + * The comparator used to maintain order in this tree map, or + * null if it uses the natural ordering of its keys. + * + * @serial + */ + @SuppressWarnings("serial") // Conditionally serializable + private final Comparator comparator; + + private transient Entry root; +``` + +Takže máme „nějaký kořen“ typu `Entry`. Zkusíme si najít definici daného typu… + +```java + // Red-black mechanics + + private static final boolean RED = false; + private static final boolean BLACK = true; + + /** + * Node in the Tree. Doubles as a means to pass key-value pairs back to + * user (see Map.Entry). + */ + + static final class Entry implements Map.Entry { + K key; + V value; + Entry left; + Entry right; + Entry parent; + boolean color = BLACK; +``` + +A máme RB-tree. + +(Implementace vychází z projektu OpenJDK.) + +### C# + +V C# se zaměříme na nejnovější vydání (.NET), které je open-source a podporováno i na operačních systémech založených na Linuxu. + +Nejdříve se podíváme na implementaci slovníku ([`SortedDictionary`](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedDictionary.cs)). + +```csharp + public class SortedDictionary : IDictionary, IDictionary, IReadOnlyDictionary where TKey : notnull + { + [NonSerialized] + private KeyCollection? _keys; + [NonSerialized] + private ValueCollection? _values; + + private readonly TreeSet> _set; // Do not rename (binary serialization) +``` + +Na první pohled máme problém, protože `TreeSet` není `SortedSet`, který by jsme čekali. Když se přesuneme na konec souboru, tak zjistíme, že `TreeSet` je jenom _backward-compatible wrapper_ pro `SortedSet`. + +Přesuneme se k [`SortedSet`](https://github.com/dotnet/runtime/blob/main/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.cs). A hned ze začátku vidíme: + +```cs + // A binary search tree is a red-black tree if it satisfies the following red-black properties: + // 1. Every node is either red or black + // 2. Every leaf (nil node) is black + // 3. If a node is red, the both its children are black + // 4. Every simple path from a node to a descendant leaf contains the same number of black nodes + // + // The basic idea of a red-black tree is to represent 2-3-4 trees as standard BSTs but to add one extra bit of information + // per node to encode 3-nodes and 4-nodes. + // 4-nodes will be represented as: B + // R R + // + // 3 -node will be represented as: B or B + // R B B R + // + // For a detailed description of the algorithm, take a look at "Algorithms" by Robert Sedgewick. + + internal enum NodeColor : byte + { + Black, + Red + } + + internal delegate bool TreeWalkPredicate(SortedSet.Node node); + + internal enum TreeRotation : byte + { + Left, + LeftRight, + Right, + RightLeft + } +``` + +Vysvětlení v komentáři trochu předbíhá náplň cvičení zaměřeného na B-stromy ;) + +## Vztah mezi množinou a mapou + +Při každé implementaci ve standardní knihovně jsme si mohli všimnout, že strom implementuje vždy jenom jeden typ: + +| Jazyk | Způsob implementace | +| ----- | ----------------------------------------------- | +| C++ | mapa ukládá dvojice do množiny | +| Java | množina ukládá prvky s „dummy“ hodnotou do mapy | +| C# | mapa ukládá dvojice do množiny | + +Mapa vyžaduje, aby každý klíč měl přiřazenou právě jednu hodnotu, tedy klíče jsou navzájem mezi sebou unikátní. To nám umožňuje organizovat klíče do množiny, zde ale narazíme na nepříjemný problém spočívající v tom, že musíme do množiny vkladat dvojice prvků: `(key, value)`. Tenhle přístup má ale zásadní problém: + +```py showLineNumbers +# let's represent dictionary/map as a set +set_of_values = set() + +# let's insert few pairs +set_of_values.add((1, 2)) +set_of_values.add((0, 42)) + +# let's set key 1 to value 6 +set_of_values.add((1, 6)) + +set_of_values +``` + +A dostaneme: + +``` +{(1, 6), (1, 2), (0, 42)} +``` + +V jednotlivých implementacích, které jste mohli vidět výše, se využívá nasledující, když: + +- _mapa ukládá dvojice do množiny_: Dvojice je obalená v samostatním typu, který porovnává jenom klíče +- _množina ukládá klíče do mapy_: V mapě se ignorují hodnoty přiřazené klíčům diff --git a/ib002/09-b-trees/_category_.yaml b/ib002/09-b-trees/_category_.yaml new file mode 100644 index 0000000..6cbe80f --- /dev/null +++ b/ib002/09-b-trees/_category_.yaml @@ -0,0 +1,6 @@ +label: B-trees +position: 9 +link: + type: generated-index + description: | + Materials related to B-trees. diff --git a/ib002/10-graphs/_category_.yaml b/ib002/10-graphs/_category_.yaml new file mode 100644 index 0000000..d3acf8d --- /dev/null +++ b/ib002/10-graphs/_category_.yaml @@ -0,0 +1,6 @@ +label: Graphs +position: 10 +link: + type: generated-index + description: | + Materials related to basic graph algorithms and graph problems. diff --git a/ib002/10-graphs/bfs-tree.md b/ib002/10-graphs/bfs-tree.md new file mode 100644 index 0000000..d9dc18d --- /dev/null +++ b/ib002/10-graphs/bfs-tree.md @@ -0,0 +1,149 @@ +--- +title: Distance boundaries from BFS tree on undirected graphs +description: | + Short explanation of distance boundaries deduced from a BFS tree. +--- + +## Introduction + +As we have talked on the seminar, if we construct from some vertex $u$ BFS tree on an undirected graph, we can obtain: + +- lower bound of length of the shortest path between 2 vertices from the _height difference_ +- upper bound of length of the shortest path between 2 vertices from the _path through the root_ + +## Lower bound + +Consider the following graph: + +![BFS graph](/files/ib002/bfs-tree/bfs_graph.svg) + +
+Source for the rendered graph + +```dot showLineNumbers +graph { + a -- c + a -- e + + c -- i + c -- b + + e -- j + + i -- d + + b -- h + + d -- h + + h -- j +} +``` + +
+ +We run BFS from the vertex $a$ and obtain the following BFS tree: + +![BFS tree](/files/ib002/bfs-tree/bfs_tree.svg) + +
+Source for the BFS tree + +```dot showLineNumbers +digraph { + a -> c + a -> e + + c -> b + c -> i + + e -> j + + b -> h + + i -> d +} +``` + +
+ +Let's consider pair of vertices $e$ and $h$. For them we can safely lay, from the BFS tree, following properties: + +- lower bound: $2$ +- upper bound: $4$ + +By having a look at the graph we started from, we can see that we have a path ‹$e, j, h$› that has a length 2. Apart from that we can also notice there is another path from $e$ to $h$ and that is ‹$e, a, c, i, d, h$›. And that path has a length of $5$. Doesn't this break our statements at the beginning? (_I'm leaving that as an exercise ;)_) + +## Proof by contradiction + +Let's keep the same graph, but break the lower bound, i.e. I have gotten a lower bound $2$, but „there must be a shorter path“! ;) + +Now the more important question, is there a shorter path in that graph? The answer is no, there's no shorter path than the one with length $2$. So what can we do about it? We'll add an edge to have a shorter path. Now we have gotten a lower bound of $2$, which means the only shorter path we can construct has $1$ edge and that is ‹$e, h$› (no intermediary vertices). Let's do this! + +![BFS tree](/files/ib002/bfs-tree/bfs_graph_with_additional_edge.svg) + +
+Source for the BFS graph with an additional edge + +```dot showLineNumbers +graph { + a -- c + a -- e + + c -- i + c -- b + + e -- j + e -- h + + i -- d + + b -- h + + d -- h + + h -- j +} +``` + +
+ +Okay, so we have a graph that breaks the rule we have laid. However, we need to run BFS to obtain the new BFS tree, since we have changed the graph. + +:::tip + +Do we need to run BFS after **every** change? + +­I am leaving that as an exercise ;) + +::: + +![BFS tree](/files/ib002/bfs-tree/bfs_tree_with_additional_edge.svg) + +
+Source for the BFS tree + +```dot showLineNumbers +digraph { + a -> c + a -> e + + c -> b + c -> i + + e -> h + e -> j + + i -> d +} +``` + +
+ +Oops, we have gotten a new BFS tree, that has a height difference of 1. + +:::tip + +Try to think about a way this can be generalized for shortening of minimal length 3 to minimal length 2 ;) + +::: diff --git a/ib002/10-graphs/iterative-and-iterators.md b/ib002/10-graphs/iterative-and-iterators.md new file mode 100644 index 0000000..4755318 --- /dev/null +++ b/ib002/10-graphs/iterative-and-iterators.md @@ -0,0 +1,133 @@ +--- +title: Iterative algorithms via iterators +description: | + Examples of iterative implementations of DFS using iterators. +--- + +## Introduction + +- [Source code used later on.](pathname:///files/ib002/iterative-and-iterators/) + +As we have talked on the seminar, iterative approach to implementing DFS is not very intuitive and is a very easy way how to create an incorrect implementation. + +On the other hand, we have seen iterative implementation in the exercises and I have also prepared two from which one was similar to recursive implementation without colors from exercises and the other one used features of high-level languages. + +## Different implementations + +### Recursive DFS implementation from exercises without colors + +``` +FUNCTION VisitedDFS(u, Visited) IS + Visited <- Union(Visited, { u }) + FOR v IN u.successors DO + IF v NOT IN Visited THEN + Visited <- VisitedDFS(v, Visited) + FI + OD + + RETURN Visited +END +``` + +This implementation is correct, does the DFS traversal as it should, however it has one „smallish“ downside and that is the time complexity. The usage of set raises the time complexity, of course it is implementation dependant. However in case of either RB-tree or hash-table implementation, we get look-up in time $\mathcal{O}(n)$ for hash-table in worst-case or $\mathcal{O}(\log n)$ for the other in the worst-case. Both are not ideal compared to checking color on vertex. + +### Iterative DFS from the exercises + +``` +PROCEDURE IterDFS(u) + stack <- empty stack + Push(stack, (u, 0)) + u.color <- gray + time <- 1 + u.d <- time + + WHILE NOT Empty(stack) DO + (u, k) <- Pop(stack) + + IF k < Length(u.successors) THEN + // search is not finished, is pushed back to stack + Push(stack, (u, k + 1)) + + v <- u.successors[k + 1] + IF v.color = white THEN + Push(stack, (v, 0)) + v.color <- gray + time <- time + 1 + v.d <- time + FI + ELSE + // u has no other successors, we can finish the search + time <- time + 1 + u.f <- time + u.color <- black + FI + OD +END +``` + +As we can see, there is some ordering in which we search through the successors. Time complexity is OK, stack holds at most all vertices (they must be on the current path). + +### My iterative with path in stack + +``` +PROCEDURE DFS(G, start) IS + path <- [ start ] + time <- 1 + start.d, start.color <- time, gray + + WHILE NOT Empty(path) DO + hasSuccessor <- false + FOR successor IN path[-1].successors DO + IF successor.color = white THEN + hasSuccessor <- true + successor.d, successor.color <- ++time, gray + path <- Append(path, successor) + BREAK + FI + OD + IF NOT hasSuccessor THEN + lastVertex <- Pop(path) + lastVertex.f, lastVertex.color <- ++time, black + FI + OD +END +``` + +This approach is similar to the iterative solution from the exercises, but it does not keep the index of the next successor, therefore it always iterates through all of them, which raises the time complexity. + +### My iterative solution with iterators + +On the other hand, we do not actually have to depend on the representation of the graph. In this case, we just _somehow_ obtain the iterator (which yields all of the succesors) and keep it in the stack. + +``` +PROCEDURE DFS(G, start) IS + path <- [ (start, Iterator(start.successors)) ] + time <- 1 + start.d, start.color <- time, gray + + WHILE NOT Empty(path) DO + lastVertex, successors <- path[-1] + + IF NOT MoveNext(successors) THEN + Pop(path) + lastVertex.f, lastVertex.color <- ++time, black + ELSE IF successors.Current.color = white THEN + nextVertex <- successors.Current + nextVertex.d, nextVertex.color <- ++time, gray + path <- Append(path, (nextVertex, Iterator(nextVertex.successors))) + FI + OD +END +``` + +( The way we manipulate with the iterators is closest to the C# implementation. Apart from the `Iterator` thing :) In case you tried to implement it in C++, you would more than likely need to change the check, since you would get first successor right at the beginning ) + +So here we don't keep indices, but the iterators. We can also check existence of other successors easily: by the iterator moving after the last successor. + +Closer explanation of the _iterator shenanigans_ follows. In the beginning, either `start` or when pushing new vertex, we are pushing an iterator that points _just before_ the first successor. When populating `lastVertex` and `successors` in the `while`-loop, we take the element from the top of the stack. `MoveNext` returns `true` if there is an element, i.e. successor in this case. If it returns `false` we have nothing to do and we pop the vertex from the stack (also set finishing time and color). If we have successor we check if it has been already visited or not. If has not, we set discovery time and color accordingly, also we add it to stack. + +## Implementation + +In case you want to play around with the code. At the beginning there is a link to the C# implementation that can be used. It has a basic representation of graph and includes BFS/DFS implementation in classes. + +In `Program.cs` you can also find a method that returns graph we used on the seminar. diff --git a/ib002/11-paths/_category_.yaml b/ib002/11-paths/_category_.yaml new file mode 100644 index 0000000..94cdd47 --- /dev/null +++ b/ib002/11-paths/_category_.yaml @@ -0,0 +1,6 @@ +label: Paths in graphs +position: 11 +link: + type: generated-index + description: | + Materials related to finding paths in graphs. diff --git a/ib002/12-hash-tables/_category_.yaml b/ib002/12-hash-tables/_category_.yaml new file mode 100644 index 0000000..b051b17 --- /dev/null +++ b/ib002/12-hash-tables/_category_.yaml @@ -0,0 +1,6 @@ +label: Hash tables +position: 12 +link: + type: generated-index + description: | + Materials related to hash tables. diff --git a/ib015/00-intro-ib015.md b/ib015/00-intro-ib015.md new file mode 100644 index 0000000..1d36af7 --- /dev/null +++ b/ib015/00-intro-ib015.md @@ -0,0 +1,5 @@ +--- +id: ib015-intro +title: Introduction +slug: /intro +--- diff --git a/ib110/00-intro-ib110.md b/ib110/00-intro-ib110.md new file mode 100644 index 0000000..0bdd537 --- /dev/null +++ b/ib110/00-intro-ib110.md @@ -0,0 +1,5 @@ +--- +id: ib110-intro +title: Introduction +slug: /intro +--- diff --git a/makefile b/makefile new file mode 100644 index 0000000..9f883cf --- /dev/null +++ b/makefile @@ -0,0 +1,12 @@ +dev: + URL=http://localhost BASE_URL=/ npm run start + +deploy-aisa: + URL=https://fi.muni.cz BASE_URL=~xfocko/ib002/ npm run build + rsync -avzrlpptv --delete build/ aisa:~/public_html/ib002/ + +deploy-poincare: + URL=https://fi.mfocko.xyz BASE_URL=/ npm run build + rsync -avzrlpptv --delete build/ poincare:~/public_html/fi/ + +.PHONY: deploy-aisa deploy-poincare diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..f999422 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,21476 @@ +{ + "name": "ib-002", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "ib-002", + "version": "0.0.0", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/preset-classic": "2.2.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "dotenv": "^16.0.3", + "hast-util-is-element": "^1.1.0", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "rehype-katex": "^5.0.0", + "remark-math": "^3.0.1" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.2.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@algolia/autocomplete-core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz", + "integrity": "sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==", + "dependencies": { + "@algolia/autocomplete-shared": "1.7.2" + } + }, + "node_modules/@algolia/autocomplete-preset-algolia": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz", + "integrity": "sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==", + "dependencies": { + "@algolia/autocomplete-shared": "1.7.2" + }, + "peerDependencies": { + "@algolia/client-search": ">= 4.9.1 < 6", + "algoliasearch": ">= 4.9.1 < 6" + } + }, + "node_modules/@algolia/autocomplete-shared": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz", + "integrity": "sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==" + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", + "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", + "dependencies": { + "@algolia/cache-common": "4.14.2" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", + "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==" + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", + "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", + "dependencies": { + "@algolia/cache-common": "4.14.2" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", + "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", + "dependencies": { + "@algolia/client-common": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", + "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", + "dependencies": { + "@algolia/client-common": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", + "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", + "dependencies": { + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", + "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", + "dependencies": { + "@algolia/client-common": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", + "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", + "dependencies": { + "@algolia/client-common": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "node_modules/@algolia/logger-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", + "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==" + }, + "node_modules/@algolia/logger-console": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", + "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", + "dependencies": { + "@algolia/logger-common": "4.14.2" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", + "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", + "dependencies": { + "@algolia/requester-common": "4.14.2" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", + "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==" + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", + "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", + "dependencies": { + "@algolia/requester-common": "4.14.2" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", + "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", + "dependencies": { + "@algolia/cache-common": "4.14.2", + "@algolia/logger-common": "4.14.2", + "@algolia/requester-common": "4.14.2" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", + "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", + "dependencies": { + "@babel/types": "^7.20.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "dependencies": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "dependencies": { + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "dependencies": { + "@babel/types": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "dependencies": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "dependencies": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz", + "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz", + "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz", + "integrity": "sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "dependencies": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "dependencies": { + "regenerator-runtime": "^0.13.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", + "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", + "dependencies": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@docsearch/css": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.0.tgz", + "integrity": "sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==" + }, + "node_modules/@docsearch/react": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.0.tgz", + "integrity": "sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==", + "dependencies": { + "@algolia/autocomplete-core": "1.7.2", + "@algolia/autocomplete-preset-algolia": "1.7.2", + "@docsearch/css": "3.3.0", + "algoliasearch": "^4.0.0" + }, + "peerDependencies": { + "@types/react": ">= 16.8.0 < 19.0.0", + "react": ">= 16.8.0 < 19.0.0", + "react-dom": ">= 16.8.0 < 19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, + "node_modules/@docusaurus/core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz", + "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==", + "dependencies": { + "@babel/core": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.18.6", + "@babel/preset-env": "^7.18.6", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@babel/runtime": "^7.18.6", + "@babel/runtime-corejs3": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@docusaurus/cssnano-preset": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.2.1", + "autoprefixer": "^10.4.7", + "babel-loader": "^8.2.5", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.0", + "cli-table3": "^0.6.2", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.23.3", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", + "cssnano": "^5.1.12", + "del": "^6.1.1", + "detect-port": "^1.3.0", + "escape-html": "^1.0.3", + "eta": "^1.12.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "html-minifier-terser": "^6.1.0", + "html-tags": "^3.2.0", + "html-webpack-plugin": "^5.5.0", + "import-fresh": "^3.3.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.6.1", + "postcss": "^8.4.14", + "postcss-loader": "^7.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.3", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.3", + "rtl-detect": "^1.0.4", + "semver": "^7.3.7", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.3", + "tslib": "^2.4.0", + "update-notifier": "^5.1.0", + "url-loader": "^4.1.1", + "wait-on": "^6.0.1", + "webpack": "^5.73.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-dev-server": "^4.9.3", + "webpack-merge": "^5.8.0", + "webpackbar": "^5.0.2" + }, + "bin": { + "docusaurus": "bin/docusaurus.mjs" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/cssnano-preset": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz", + "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==", + "dependencies": { + "cssnano-preset-advanced": "^5.3.8", + "postcss": "^8.4.14", + "postcss-sort-media-queries": "^4.2.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/logger": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz", + "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==", + "dependencies": { + "chalk": "^4.1.2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/mdx-loader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz", + "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==", + "dependencies": { + "@babel/parser": "^7.18.8", + "@babel/traverse": "^7.18.8", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@mdx-js/mdx": "^1.6.22", + "escape-html": "^1.0.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "image-size": "^1.0.1", + "mdast-util-to-string": "^2.0.0", + "remark-emoji": "^2.2.0", + "stringify-object": "^3.3.0", + "tslib": "^2.4.0", + "unified": "^9.2.2", + "unist-util-visit": "^2.0.3", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/module-type-aliases": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz", + "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==", + "dependencies": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "2.2.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + }, + "peerDependencies": { + "react": "*", + "react-dom": "*" + } + }, + "node_modules/@docusaurus/plugin-content-blog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz", + "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "tslib": "^2.4.0", + "unist-util-visit": "^2.0.3", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-docs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz", + "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@types/react-router-config": "^5.0.6", + "combine-promises": "^1.1.0", + "fs-extra": "^10.1.0", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-content-pages": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz", + "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "fs-extra": "^10.1.0", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz", + "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "fs-extra": "^10.1.0", + "react-json-view": "^1.21.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-analytics": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz", + "integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-google-gtag": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz", + "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/plugin-sitemap": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz", + "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "fs-extra": "^10.1.0", + "sitemap": "^7.1.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/preset-classic": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz", + "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/plugin-debug": "2.2.0", + "@docusaurus/plugin-google-analytics": "2.2.0", + "@docusaurus/plugin-google-gtag": "2.2.0", + "@docusaurus/plugin-sitemap": "2.2.0", + "@docusaurus/theme-classic": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-search-algolia": "2.2.0", + "@docusaurus/types": "2.2.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/@docusaurus/theme-classic": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz", + "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==", + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "infima": "0.2.0-alpha.42", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.14", + "prism-react-renderer": "^1.3.5", + "prismjs": "^1.28.0", + "react-router-dom": "^5.3.3", + "rtlcss": "^3.5.0", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-common": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz", + "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==", + "dependencies": { + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^1.3.5", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-search-algolia": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz", + "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==", + "dependencies": { + "@docsearch/react": "^3.1.1", + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "algoliasearch": "^4.13.1", + "algoliasearch-helper": "^3.10.0", + "clsx": "^1.2.1", + "eta": "^1.12.3", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/theme-translations": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz", + "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==", + "dependencies": { + "fs-extra": "^10.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@docusaurus/types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz", + "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.6.0", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0", + "webpack-merge": "^5.8.0" + }, + "peerDependencies": { + "react": "^16.8.4 || ^17.0.0", + "react-dom": "^16.8.4 || ^17.0.0" + } + }, + "node_modules/@docusaurus/utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==", + "dependencies": { + "@docusaurus/logger": "2.2.0", + "@svgr/webpack": "^6.2.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "github-slugger": "^1.4.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.4.0", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-common": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz", + "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + }, + "peerDependencies": { + "@docusaurus/types": "*" + }, + "peerDependenciesMeta": { + "@docusaurus/types": { + "optional": true + } + } + }, + "node_modules/@docusaurus/utils-validation": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz", + "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==", + "dependencies": { + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", + "joi": "^17.6.0", + "js-yaml": "^4.1.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "dependencies": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "react": "^16.13.1 || ^17.0.0" + } + }, + "node_modules/@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@slorber/static-site-generator-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", + "dependencies": { + "eval": "^0.1.8", + "p-map": "^4.0.0", + "webpack-sources": "^3.2.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", + "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", + "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "dependencies": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "dependencies": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "^6.0.0" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "dependencies": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "node_modules/@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "node_modules/@types/katex": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz", + "integrity": "sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==" + }, + "node_modules/@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "node_modules/@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "node_modules/@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/react": { + "version": "18.0.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", + "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-router": { + "version": "5.1.19", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", + "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "node_modules/@types/react-router-config": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.6.tgz", + "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "dependencies": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/accepts/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/algoliasearch": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", + "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.14.2", + "@algolia/cache-common": "4.14.2", + "@algolia/cache-in-memory": "4.14.2", + "@algolia/client-account": "4.14.2", + "@algolia/client-analytics": "4.14.2", + "@algolia/client-common": "4.14.2", + "@algolia/client-personalization": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/logger-common": "4.14.2", + "@algolia/logger-console": "4.14.2", + "@algolia/requester-browser-xhr": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/requester-node-http": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.11.1.tgz", + "integrity": "sha512-mvsPN3eK4E0bZG0/WlWJjeqe/bUD2KOEVOl0GyL/TGXn6wcpZU8NOuztGHCUKXkyg5gq6YzUakVTmnmSSO5Yiw==", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dependencies": { + "string-width": "^4.1.0" + } + }, + "node_modules/ansi-align/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/ansi-align/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@babel/core": "^7.11.6" + } + }, + "node_modules/babel-plugin-apply-mdx-type-prop/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "dependencies": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/babel-plugin-extract-import-names/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base16": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001430", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz", + "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==" + }, + "node_modules/clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "node_modules/cli-table3/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cli-table3/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "node_modules/combine-promises": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", + "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compressible/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dependencies": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "node_modules/content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/copy-text-to-clipboard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", + "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "dependencies": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/core-js": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "dependencies": { + "browserslist": "^4.21.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "dependencies": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "lightningcss": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "dependencies": { + "cssnano-preset-default": "^5.2.13", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-advanced": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz", + "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==", + "dependencies": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.13", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "dependencies": { + "repeat-string": "^1.5.4" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "dependencies": { + "address": "^1.0.1", + "debug": "4" + }, + "bin": { + "detect": "bin/detect-port.js", + "detect-port": "bin/detect-port.js" + } + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "node_modules/dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eta": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.12.3.tgz", + "integrity": "sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==", + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "url": "https://github.com/eta-dev/eta?sponsor=1" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "dependencies": { + "@types/node": "*", + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/express/node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/express/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "dependencies": { + "punycode": "^1.3.2" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "dependencies": { + "fbjs": "^3.0.0" + } + }, + "node_modules/fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "node_modules/feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "dependencies": { + "xml-js": "^1.6.11" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flux": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", + "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", + "dependencies": { + "fbemitter": "^3.0.0", + "fbjs": "^3.0.1" + }, + "peerDependencies": { + "react": "^15.0.2 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/global-dirs/node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "dependencies": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "dependencies": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "dependencies": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "dependencies": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "dependencies": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "dependencies": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-proxy-middleware/node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==", + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infima": { + "version": "0.2.0-alpha.42", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.42.tgz", + "integrity": "sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==", + "engines": { + "node": ">=12" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-ci/node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", + "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "dependencies": { + "@jest/types": "^29.2.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", + "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "dependencies": { + "@types/node": "*", + "jest-util": "^29.2.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/joi": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/katex": { + "version": "0.13.24", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.24.tgz", + "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.0.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "dependencies": { + "unist-util-remove": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", + "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "dependencies": { + "mime-db": "~1.33.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "dependencies": { + "lodash": "^4.17.21" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "dependencies": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.7" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-idents": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sort-media-queries": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.3.0.tgz", + "integrity": "sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==", + "dependencies": { + "sort-css-media-queries": "2.1.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.16" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/prism-react-renderer": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "peerDependencies": { + "react": ">=0.14.9" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "dependencies": { + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "node_modules/pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "dependencies": { + "escape-goat": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", + "dependencies": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + }, + "peerDependencies": { + "react": "17.0.2" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "node_modules/react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + }, + "peerDependencies": { + "react": "^16.6.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.6.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-json-view": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", + "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", + "dependencies": { + "flux": "^4.0.1", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^8.3.2" + }, + "peerDependencies": { + "react": "^17.0.0 || ^16.3.0 || ^15.5.4", + "react-dom": "^17.0.0 || ^16.3.0 || ^15.5.4" + } + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-loadable": { + "name": "@docusaurus/react-loadable", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "dependencies": { + "@types/react": "*", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": "*" + } + }, + "node_modules/react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "dependencies": { + "@babel/runtime": "^7.10.3" + }, + "engines": { + "node": ">=10.13.0" + }, + "peerDependencies": { + "react-loadable": "*", + "webpack": ">=4.41.1 || 5.x" + } + }, + "node_modules/react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "dependencies": { + "@babel/runtime": "^7.1.2" + }, + "peerDependencies": { + "react": ">=15", + "react-router": ">=5" + } + }, + "node_modules/react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "dependencies": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", + "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", + "dependencies": { + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexpu-core": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "dependencies": { + "rc": "1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/rehype-katex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz", + "integrity": "sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg==", + "dependencies": { + "@types/katex": "^0.11.0", + "hast-util-to-text": "^2.0.0", + "katex": "^0.13.0", + "rehype-parse": "^7.0.0", + "unified": "^9.0.0", + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", + "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", + "dependencies": { + "hast-util-from-parse5": "^6.0.0", + "parse5": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remark-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", + "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "dependencies": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.3" + } + }, + "node_modules/remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-math": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-3.0.1.tgz", + "integrity": "sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "dependencies": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx/node_modules/@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/remark-mdx/node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/remark-mdx/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/remark-mdx/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remark-mdx/node_modules/unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "dependencies": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "dependencies": { + "mdast-squeeze-paragraphs": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rtl-detect": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", + "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" + }, + "node_modules/rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "dependencies": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "bin": { + "rtlcss": "bin/rtlcss.js" + } + }, + "node_modules/rtlcss/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rtlcss/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dependencies": { + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/semver-diff/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/send/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "dependencies": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + } + }, + "node_modules/serve-handler/node_modules/path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=5.6.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sort-css-media-queries": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", + "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "engines": { + "node": ">= 6.3.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/std-env": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.0.tgz", + "integrity": "sha512-cNNS+VYsXIs5gI6gJipO4qZ8YYT274JHvNnQ1/R/x8Q8mdP0qj0zoMchRXmBNPqp/0eOEhX+3g7g6Fgb7meLIQ==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/svgo/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + }, + "node_modules/trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/type-is/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "dependencies": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "dependencies": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "dependencies": { + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "dependencies": { + "unist-util-visit": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "dependencies": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/yeoman/update-notifier?sponsor=1" + } + }, + "node_modules/update-notifier/node_modules/boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "dependencies": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/update-notifier/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-notifier/node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-notifier/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uri-js/node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "dependencies": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true + } + } + }, + "node_modules/url-loader/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "webpack": "3 || 4 || 5" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "dependencies": { + "string-width": "^5.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" + }, + "node_modules/wrap-ansi": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", + "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "dependencies": { + "sax": "^1.2.4" + }, + "bin": { + "xml-js": "bin/cli.js" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + }, + "dependencies": { + "@algolia/autocomplete-core": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.7.2.tgz", + "integrity": "sha512-eclwUDC6qfApNnEfu1uWcL/rudQsn59tjEoUYZYE2JSXZrHLRjBUGMxiCoknobU2Pva8ejb0eRxpIYDtVVqdsw==", + "requires": { + "@algolia/autocomplete-shared": "1.7.2" + } + }, + "@algolia/autocomplete-preset-algolia": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.7.2.tgz", + "integrity": "sha512-+RYEG6B0QiGGfRb2G3MtPfyrl0dALF3cQNTWBzBX6p5o01vCCGTTinAm2UKG3tfc2CnOMAtnPLkzNZyJUpnVJw==", + "requires": { + "@algolia/autocomplete-shared": "1.7.2" + } + }, + "@algolia/autocomplete-shared": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.7.2.tgz", + "integrity": "sha512-QCckjiC7xXHIUaIL3ektBtjJ0w7tTA3iqKcAE/Hjn1lZ5omp7i3Y4e09rAr9ZybqirL7AbxCLLq0Ra5DDPKeug==" + }, + "@algolia/cache-browser-local-storage": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.14.2.tgz", + "integrity": "sha512-FRweBkK/ywO+GKYfAWbrepewQsPTIEirhi1BdykX9mxvBPtGNKccYAxvGdDCumU1jL4r3cayio4psfzKMejBlA==", + "requires": { + "@algolia/cache-common": "4.14.2" + } + }, + "@algolia/cache-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.14.2.tgz", + "integrity": "sha512-SbvAlG9VqNanCErr44q6lEKD2qoK4XtFNx9Qn8FK26ePCI8I9yU7pYB+eM/cZdS9SzQCRJBbHUumVr4bsQ4uxg==" + }, + "@algolia/cache-in-memory": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.14.2.tgz", + "integrity": "sha512-HrOukWoop9XB/VFojPv1R5SVXowgI56T9pmezd/djh2JnVN/vXswhXV51RKy4nCpqxyHt/aGFSq2qkDvj6KiuQ==", + "requires": { + "@algolia/cache-common": "4.14.2" + } + }, + "@algolia/client-account": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.14.2.tgz", + "integrity": "sha512-WHtriQqGyibbb/Rx71YY43T0cXqyelEU0lB2QMBRXvD2X0iyeGl4qMxocgEIcbHyK7uqE7hKgjT8aBrHqhgc1w==", + "requires": { + "@algolia/client-common": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "@algolia/client-analytics": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.14.2.tgz", + "integrity": "sha512-yBvBv2mw+HX5a+aeR0dkvUbFZsiC4FKSnfqk9rrfX+QrlNOKEhCG0tJzjiOggRW4EcNqRmaTULIYvIzQVL2KYQ==", + "requires": { + "@algolia/client-common": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "@algolia/client-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.14.2.tgz", + "integrity": "sha512-43o4fslNLcktgtDMVaT5XwlzsDPzlqvqesRi4MjQz2x4/Sxm7zYg5LRYFol1BIhG6EwxKvSUq8HcC/KxJu3J0Q==", + "requires": { + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "@algolia/client-personalization": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.14.2.tgz", + "integrity": "sha512-ACCoLi0cL8CBZ1W/2juehSltrw2iqsQBnfiu/Rbl9W2yE6o2ZUb97+sqN/jBqYNQBS+o0ekTMKNkQjHHAcEXNw==", + "requires": { + "@algolia/client-common": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "@algolia/client-search": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.14.2.tgz", + "integrity": "sha512-L5zScdOmcZ6NGiVbLKTvP02UbxZ0njd5Vq9nJAmPFtjffUSOGEp11BmD2oMJ5QvARgx2XbX4KzTTNS5ECYIMWw==", + "requires": { + "@algolia/client-common": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "@algolia/logger-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.14.2.tgz", + "integrity": "sha512-/JGlYvdV++IcMHBnVFsqEisTiOeEr6cUJtpjz8zc0A9c31JrtLm318Njc72p14Pnkw3A/5lHHh+QxpJ6WFTmsA==" + }, + "@algolia/logger-console": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.14.2.tgz", + "integrity": "sha512-8S2PlpdshbkwlLCSAB5f8c91xyc84VM9Ar9EdfE9UmX+NrKNYnWR1maXXVDQQoto07G1Ol/tYFnFVhUZq0xV/g==", + "requires": { + "@algolia/logger-common": "4.14.2" + } + }, + "@algolia/requester-browser-xhr": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.14.2.tgz", + "integrity": "sha512-CEh//xYz/WfxHFh7pcMjQNWgpl4wFB85lUMRyVwaDPibNzQRVcV33YS+63fShFWc2+42YEipFGH2iPzlpszmDw==", + "requires": { + "@algolia/requester-common": "4.14.2" + } + }, + "@algolia/requester-common": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.14.2.tgz", + "integrity": "sha512-73YQsBOKa5fvVV3My7iZHu1sUqmjjfs9TteFWwPwDmnad7T0VTCopttcsM3OjLxZFtBnX61Xxl2T2gmG2O4ehg==" + }, + "@algolia/requester-node-http": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.14.2.tgz", + "integrity": "sha512-oDbb02kd1o5GTEld4pETlPZLY0e+gOSWjWMJHWTgDXbv9rm/o2cF7japO6Vj1ENnrqWvLBmW1OzV9g6FUFhFXg==", + "requires": { + "@algolia/requester-common": "4.14.2" + } + }, + "@algolia/transporter": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.14.2.tgz", + "integrity": "sha512-t89dfQb2T9MFQHidjHcfhh6iGMNwvuKUvojAj+JsrHAGbuSy7yE4BylhLX6R0Q1xYRoC4Vvv+O5qIw/LdnQfsQ==", + "requires": { + "@algolia/cache-common": "4.14.2", + "@algolia/logger-common": "4.14.2", + "@algolia/requester-common": "4.14.2" + } + }, + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/compat-data": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==" + }, + "@babel/core": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.6", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.1.tgz", + "integrity": "sha512-u1dMdBUmA7Z0rBB97xh8pIhviK7oItYOkjbsCxTWMknyvbQRBwX7/gn4JXurRdirWMFh+ZtYARqkA6ydogVZpg==", + "requires": { + "@babel/types": "^7.20.0", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "requires": { + "@babel/compat-data": "^7.20.0", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "requires": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-function-name": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "requires": { + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-module-transforms": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + } + }, + "@babel/helper-replace-supers": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "requires": { + "@babel/types": "^7.19.4" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", + "requires": { + "@babel/types": "^7.20.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } + }, + "@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==" + }, + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + }, + "@babel/helper-wrap-function": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "requires": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" + } + }, + "@babel/helpers": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "requires": { + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" + } + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.1.tgz", + "integrity": "sha512-hp0AYxaZJhxULfM1zyp7Wgr+pSUKBcP3M+PHnSzWGdXOzg/kHWIgiUWARvubhUKGOEw3xqY4x+lyZ9ytBVcELw==" + }, + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "requires": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.8" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.0.tgz", + "integrity": "sha512-sXOohbpHZSk7GjxK9b3dKB7CfqUD5DwOH+DggKzOQ7TXYP+RCSbRykfjQmn/zq+rBjycVRtLf9pYhAaEJA786w==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.0.tgz", + "integrity": "sha512-1dIhvZfkDVx/zn2S1aFwlruspTt4189j7fEkH0Y0VyuDM6bQt7bD6kLcz3l4IlLG+e5OReaBz9ROAbttRtUHqA==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "requires": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "requires": { + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "requires": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-identifier": "^7.19.1" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz", + "integrity": "sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.18.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.18.12.tgz", + "integrity": "sha512-Q99U9/ttiu+LMnRU8psd23HhvwXmKWDQIpocm0JKaICcZHnw+mdQbHm6xnSy7dOl8I5PELakYtNBubNQlBXbZw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.19.0" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz", + "integrity": "sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==", + "requires": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.19.0", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "requires": { + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.0.tgz", + "integrity": "sha512-xOAsAFaun3t9hCwZ13Qe7gq423UgMZ6zAgmLxeGGapFqlT/X3L5qT2btjiVLlFn7gWtMaVyceS5VxGAuKbgizw==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/plugin-syntax-typescript": "^7.20.0" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.9" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "requires": { + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.19.4", + "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.19.0", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", + "@babel/plugin-transform-unicode-regex": "^7.18.6", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.19.4", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + } + }, + "@babel/preset-typescript": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", + "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-typescript": "^7.18.6" + } + }, + "@babel/runtime": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "requires": { + "regenerator-runtime": "^0.13.10" + } + }, + "@babel/runtime-corejs3": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", + "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", + "requires": { + "core-js-pure": "^3.25.1", + "regenerator-runtime": "^0.13.10" + } + }, + "@babel/template": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" + } + }, + "@babel/traverse": { + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "@babel/types": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.0.tgz", + "integrity": "sha512-Jlgt3H0TajCW164wkTOTzHkZb075tMQMULzrLUoUeKmO7eFL96GgDxf7/Axhc5CAuKE3KFyVW1p6ysKsi2oXAg==", + "requires": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "optional": true + }, + "@docsearch/css": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.3.0.tgz", + "integrity": "sha512-rODCdDtGyudLj+Va8b6w6Y85KE85bXRsps/R4Yjwt5vueXKXZQKYw0aA9knxLBT6a/bI/GMrAcmCR75KYOM6hg==" + }, + "@docsearch/react": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.3.0.tgz", + "integrity": "sha512-fhS5adZkae2SSdMYEMVg6pxI5a/cE+tW16ki1V0/ur4Fdok3hBRkmN/H8VvlXnxzggkQIIRIVvYPn00JPjen3A==", + "requires": { + "@algolia/autocomplete-core": "1.7.2", + "@algolia/autocomplete-preset-algolia": "1.7.2", + "@docsearch/css": "3.3.0", + "algoliasearch": "^4.0.0" + } + }, + "@docusaurus/core": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-2.2.0.tgz", + "integrity": "sha512-Vd6XOluKQqzG12fEs9prJgDtyn6DPok9vmUWDR2E6/nV5Fl9SVkhEQOBxwObjk3kQh7OY7vguFaLh0jqdApWsA==", + "requires": { + "@babel/core": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-transform-runtime": "^7.18.6", + "@babel/preset-env": "^7.18.6", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@babel/runtime": "^7.18.6", + "@babel/runtime-corejs3": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@docusaurus/cssnano-preset": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@slorber/static-site-generator-webpack-plugin": "^4.0.7", + "@svgr/webpack": "^6.2.1", + "autoprefixer": "^10.4.7", + "babel-loader": "^8.2.5", + "babel-plugin-dynamic-import-node": "^2.3.3", + "boxen": "^6.2.1", + "chalk": "^4.1.2", + "chokidar": "^3.5.3", + "clean-css": "^5.3.0", + "cli-table3": "^0.6.2", + "combine-promises": "^1.1.0", + "commander": "^5.1.0", + "copy-webpack-plugin": "^11.0.0", + "core-js": "^3.23.3", + "css-loader": "^6.7.1", + "css-minimizer-webpack-plugin": "^4.0.0", + "cssnano": "^5.1.12", + "del": "^6.1.1", + "detect-port": "^1.3.0", + "escape-html": "^1.0.3", + "eta": "^1.12.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "html-minifier-terser": "^6.1.0", + "html-tags": "^3.2.0", + "html-webpack-plugin": "^5.5.0", + "import-fresh": "^3.3.0", + "leven": "^3.1.0", + "lodash": "^4.17.21", + "mini-css-extract-plugin": "^2.6.1", + "postcss": "^8.4.14", + "postcss-loader": "^7.0.0", + "prompts": "^2.4.2", + "react-dev-utils": "^12.0.1", + "react-helmet-async": "^1.3.0", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable-ssr-addon-v5-slorber": "^1.0.1", + "react-router": "^5.3.3", + "react-router-config": "^5.1.1", + "react-router-dom": "^5.3.3", + "rtl-detect": "^1.0.4", + "semver": "^7.3.7", + "serve-handler": "^6.1.3", + "shelljs": "^0.8.5", + "terser-webpack-plugin": "^5.3.3", + "tslib": "^2.4.0", + "update-notifier": "^5.1.0", + "url-loader": "^4.1.1", + "wait-on": "^6.0.1", + "webpack": "^5.73.0", + "webpack-bundle-analyzer": "^4.5.0", + "webpack-dev-server": "^4.9.3", + "webpack-merge": "^5.8.0", + "webpackbar": "^5.0.2" + } + }, + "@docusaurus/cssnano-preset": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-2.2.0.tgz", + "integrity": "sha512-mAAwCo4n66TMWBH1kXnHVZsakW9VAXJzTO4yZukuL3ro4F+JtkMwKfh42EG75K/J/YIFQG5I/Bzy0UH/hFxaTg==", + "requires": { + "cssnano-preset-advanced": "^5.3.8", + "postcss": "^8.4.14", + "postcss-sort-media-queries": "^4.2.1", + "tslib": "^2.4.0" + } + }, + "@docusaurus/logger": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-2.2.0.tgz", + "integrity": "sha512-DF3j1cA5y2nNsu/vk8AG7xwpZu6f5MKkPPMaaIbgXLnWGfm6+wkOeW7kNrxnM95YOhKUkJUophX69nGUnLsm0A==", + "requires": { + "chalk": "^4.1.2", + "tslib": "^2.4.0" + } + }, + "@docusaurus/mdx-loader": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-2.2.0.tgz", + "integrity": "sha512-X2bzo3T0jW0VhUU+XdQofcEeozXOTmKQMvc8tUnWRdTnCvj4XEcBVdC3g+/jftceluiwSTNRAX4VBOJdNt18jA==", + "requires": { + "@babel/parser": "^7.18.8", + "@babel/traverse": "^7.18.8", + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@mdx-js/mdx": "^1.6.22", + "escape-html": "^1.0.3", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "image-size": "^1.0.1", + "mdast-util-to-string": "^2.0.0", + "remark-emoji": "^2.2.0", + "stringify-object": "^3.3.0", + "tslib": "^2.4.0", + "unified": "^9.2.2", + "unist-util-visit": "^2.0.3", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + } + }, + "@docusaurus/module-type-aliases": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-2.2.0.tgz", + "integrity": "sha512-wDGW4IHKoOr9YuJgy7uYuKWrDrSpsUSDHLZnWQYM9fN7D5EpSmYHjFruUpKWVyxLpD/Wh0rW8hYZwdjJIQUQCQ==", + "requires": { + "@docusaurus/react-loadable": "5.5.2", + "@docusaurus/types": "2.2.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "@types/react-router-dom": "*", + "react-helmet-async": "*", + "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + } + }, + "@docusaurus/plugin-content-blog": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.2.0.tgz", + "integrity": "sha512-0mWBinEh0a5J2+8ZJXJXbrCk1tSTNf7Nm4tYAl5h2/xx+PvH/Bnu0V+7mMljYm/1QlDYALNIIaT/JcoZQFUN3w==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "cheerio": "^1.0.0-rc.12", + "feed": "^4.2.2", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "reading-time": "^1.5.0", + "tslib": "^2.4.0", + "unist-util-visit": "^2.0.3", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-content-docs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.2.0.tgz", + "integrity": "sha512-BOazBR0XjzsHE+2K1wpNxz5QZmrJgmm3+0Re0EVPYFGW8qndCWGNtXW/0lGKhecVPML8yyFeAmnUCIs7xM2wPw==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@types/react-router-config": "^5.0.6", + "combine-promises": "^1.1.0", + "fs-extra": "^10.1.0", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-content-pages": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.2.0.tgz", + "integrity": "sha512-+OTK3FQHk5WMvdelz8v19PbEbx+CNT6VSpx7nVOvMNs5yJCKvmqBJBQ2ZSxROxhVDYn+CZOlmyrC56NSXzHf6g==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "fs-extra": "^10.1.0", + "tslib": "^2.4.0", + "webpack": "^5.73.0" + } + }, + "@docusaurus/plugin-debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-2.2.0.tgz", + "integrity": "sha512-p9vOep8+7OVl6r/NREEYxf4HMAjV8JMYJ7Bos5fCFO0Wyi9AZEo0sCTliRd7R8+dlJXZEgcngSdxAUo/Q+CJow==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "fs-extra": "^10.1.0", + "react-json-view": "^1.21.3", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-google-analytics": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.2.0.tgz", + "integrity": "sha512-+eZVVxVeEnV5nVQJdey9ZsfyEVMls6VyWTIj8SmX0k5EbqGvnIfET+J2pYEuKQnDIHxy+syRMoRM6AHXdHYGIg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-google-gtag": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.2.0.tgz", + "integrity": "sha512-6SOgczP/dYdkqUMGTRqgxAS1eTp6MnJDAQMy8VCF1QKbWZmlkx4agHDexihqmYyCujTYHqDAhm1hV26EET54NQ==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/plugin-sitemap": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.2.0.tgz", + "integrity": "sha512-0jAmyRDN/aI265CbWZNZuQpFqiZuo+5otk2MylU9iVrz/4J7gSc+ZJ9cy4EHrEsW7PV8s1w18hIEsmcA1YgkKg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "fs-extra": "^10.1.0", + "sitemap": "^7.1.1", + "tslib": "^2.4.0" + } + }, + "@docusaurus/preset-classic": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-2.2.0.tgz", + "integrity": "sha512-yKIWPGNx7BT8v2wjFIWvYrS+nvN04W+UameSFf8lEiJk6pss0kL6SG2MRvyULiI3BDxH+tj6qe02ncpSPGwumg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/plugin-debug": "2.2.0", + "@docusaurus/plugin-google-analytics": "2.2.0", + "@docusaurus/plugin-google-gtag": "2.2.0", + "@docusaurus/plugin-sitemap": "2.2.0", + "@docusaurus/theme-classic": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-search-algolia": "2.2.0", + "@docusaurus/types": "2.2.0" + } + }, + "@docusaurus/react-loadable": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, + "@docusaurus/theme-classic": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-2.2.0.tgz", + "integrity": "sha512-kjbg/qJPwZ6H1CU/i9d4l/LcFgnuzeiGgMQlt6yPqKo0SOJIBMPuz7Rnu3r/WWbZFPi//o8acclacOzmXdUUEg==", + "requires": { + "@docusaurus/core": "2.2.0", + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/types": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-common": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "copy-text-to-clipboard": "^3.0.1", + "infima": "0.2.0-alpha.42", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + "postcss": "^8.4.14", + "prism-react-renderer": "^1.3.5", + "prismjs": "^1.28.0", + "react-router-dom": "^5.3.3", + "rtlcss": "^3.5.0", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-common": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.2.0.tgz", + "integrity": "sha512-R8BnDjYoN90DCL75gP7qYQfSjyitXuP9TdzgsKDmSFPNyrdE3twtPNa2dIN+h+p/pr+PagfxwWbd6dn722A1Dw==", + "requires": { + "@docusaurus/mdx-loader": "2.2.0", + "@docusaurus/module-type-aliases": "2.2.0", + "@docusaurus/plugin-content-blog": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/plugin-content-pages": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router-config": "*", + "clsx": "^1.2.1", + "parse-numeric-range": "^1.3.0", + "prism-react-renderer": "^1.3.5", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-search-algolia": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.2.0.tgz", + "integrity": "sha512-2h38B0tqlxgR2FZ9LpAkGrpDWVdXZ7vltfmTdX+4RsDs3A7khiNsmZB+x/x6sA4+G2V2CvrsPMlsYBy5X+cY1w==", + "requires": { + "@docsearch/react": "^3.1.1", + "@docusaurus/core": "2.2.0", + "@docusaurus/logger": "2.2.0", + "@docusaurus/plugin-content-docs": "2.2.0", + "@docusaurus/theme-common": "2.2.0", + "@docusaurus/theme-translations": "2.2.0", + "@docusaurus/utils": "2.2.0", + "@docusaurus/utils-validation": "2.2.0", + "algoliasearch": "^4.13.1", + "algoliasearch-helper": "^3.10.0", + "clsx": "^1.2.1", + "eta": "^1.12.3", + "fs-extra": "^10.1.0", + "lodash": "^4.17.21", + "tslib": "^2.4.0", + "utility-types": "^3.10.0" + } + }, + "@docusaurus/theme-translations": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-2.2.0.tgz", + "integrity": "sha512-3T140AG11OjJrtKlY4pMZ5BzbGRDjNs2co5hJ6uYJG1bVWlhcaFGqkaZ5lCgKflaNHD7UHBHU9Ec5f69jTdd6w==", + "requires": { + "fs-extra": "^10.1.0", + "tslib": "^2.4.0" + } + }, + "@docusaurus/types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-2.2.0.tgz", + "integrity": "sha512-b6xxyoexfbRNRI8gjblzVOnLr4peCJhGbYGPpJ3LFqpi5nsFfoK4mmDLvWdeah0B7gmJeXabN7nQkFoqeSdmOw==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "commander": "^5.1.0", + "joi": "^17.6.0", + "react-helmet-async": "^1.3.0", + "utility-types": "^3.10.0", + "webpack": "^5.73.0", + "webpack-merge": "^5.8.0" + } + }, + "@docusaurus/utils": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.2.0.tgz", + "integrity": "sha512-oNk3cjvx7Tt1Lgh/aeZAmFpGV2pDr5nHKrBVx6hTkzGhrnMuQqLt6UPlQjdYQ3QHXwyF/ZtZMO1D5Pfi0lu7SA==", + "requires": { + "@docusaurus/logger": "2.2.0", + "@svgr/webpack": "^6.2.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.1.0", + "github-slugger": "^1.4.0", + "globby": "^11.1.0", + "gray-matter": "^4.0.3", + "js-yaml": "^4.1.0", + "lodash": "^4.17.21", + "micromatch": "^4.0.5", + "resolve-pathname": "^3.0.0", + "shelljs": "^0.8.5", + "tslib": "^2.4.0", + "url-loader": "^4.1.1", + "webpack": "^5.73.0" + } + }, + "@docusaurus/utils-common": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-2.2.0.tgz", + "integrity": "sha512-qebnerHp+cyovdUseDQyYFvMW1n1nv61zGe5JJfoNQUnjKuApch3IVsz+/lZ9a38pId8kqehC1Ao2bW/s0ntDA==", + "requires": { + "tslib": "^2.4.0" + } + }, + "@docusaurus/utils-validation": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-2.2.0.tgz", + "integrity": "sha512-I1hcsG3yoCkasOL5qQAYAfnmVoLei7apugT6m4crQjmDGxq+UkiRrq55UqmDDyZlac/6ax/JC0p+usZ6W4nVyg==", + "requires": { + "@docusaurus/logger": "2.2.0", + "@docusaurus/utils": "2.2.0", + "joi": "^17.6.0", + "js-yaml": "^4.1.0", + "tslib": "^2.4.0" + } + }, + "@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + } + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "requires": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "@mdx-js/mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-1.6.22.tgz", + "integrity": "sha512-AMxuLxPz2j5/6TpF/XSdKpQP1NlG0z11dFOlq+2IP/lSgl11GY8ji6S/rgsViN/L0BDvHvUMruRb7ub+24LUYA==", + "requires": { + "@babel/core": "7.12.9", + "@babel/plugin-syntax-jsx": "7.12.1", + "@babel/plugin-syntax-object-rest-spread": "7.8.3", + "@mdx-js/util": "1.6.22", + "babel-plugin-apply-mdx-type-prop": "1.6.22", + "babel-plugin-extract-import-names": "1.6.22", + "camelcase-css": "2.0.1", + "detab": "2.0.4", + "hast-util-raw": "6.0.1", + "lodash.uniq": "4.5.0", + "mdast-util-to-hast": "10.0.1", + "remark-footnotes": "2.0.0", + "remark-mdx": "1.6.22", + "remark-parse": "8.0.3", + "remark-squeeze-paragraphs": "4.0.0", + "style-to-object": "0.3.0", + "unified": "9.2.0", + "unist-builder": "2.0.3", + "unist-util-visit": "2.0.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "@mdx-js/react": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-1.6.22.tgz", + "integrity": "sha512-TDoPum4SHdfPiGSAaRBw7ECyI8VaHpK8GJugbJIJuqyh6kzw9ZLJZW3HGL3NNrJGxcAixUvqROm+YuQOo5eXtg==", + "requires": {} + }, + "@mdx-js/util": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", + "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==" + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==" + }, + "@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "requires": { + "@hapi/hoek": "^9.0.0" + } + }, + "@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@slorber/static-site-generator-webpack-plugin": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", + "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", + "requires": { + "eval": "^0.1.8", + "p-map": "^4.0.0", + "webpack-sources": "^3.2.2" + } + }, + "@svgr/babel-plugin-add-jsx-attribute": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", + "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-attribute": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-6.5.0.tgz", + "integrity": "sha512-8zYdkym7qNyfXpWvu4yq46k41pyNM9SOstoWhKlm+IfdCE1DdnRKeMUPsWIEO/DEkaWxJ8T9esNdG3QwQ93jBA==", + "requires": {} + }, + "@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-6.5.0.tgz", + "integrity": "sha512-NFdxMq3xA42Kb1UbzCVxplUc0iqSyM9X8kopImvFnB+uSDdzIHOdbs1op8ofAvVRtbg4oZiyRl3fTYeKcOe9Iw==", + "requires": {} + }, + "@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", + "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "requires": {} + }, + "@svgr/babel-plugin-svg-dynamic-title": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", + "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "requires": {} + }, + "@svgr/babel-plugin-svg-em-dimensions": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", + "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "requires": {} + }, + "@svgr/babel-plugin-transform-react-native-svg": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", + "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "requires": {} + }, + "@svgr/babel-plugin-transform-svg-component": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", + "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "requires": {} + }, + "@svgr/babel-preset": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", + "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "requires": { + "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", + "@svgr/babel-plugin-remove-jsx-attribute": "*", + "@svgr/babel-plugin-remove-jsx-empty-expression": "*", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", + "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", + "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", + "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", + "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + } + }, + "@svgr/core": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", + "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.1" + } + }, + "@svgr/hast-util-to-babel-ast": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", + "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "requires": { + "@babel/types": "^7.20.0", + "entities": "^4.4.0" + } + }, + "@svgr/plugin-jsx": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", + "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "requires": { + "@babel/core": "^7.19.6", + "@svgr/babel-preset": "^6.5.1", + "@svgr/hast-util-to-babel-ast": "^6.5.1", + "svg-parser": "^2.0.4" + } + }, + "@svgr/plugin-svgo": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", + "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "requires": { + "cosmiconfig": "^7.0.1", + "deepmerge": "^4.2.2", + "svgo": "^2.8.0" + } + }, + "@svgr/webpack": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", + "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "requires": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-constant-elements": "^7.18.12", + "@babel/preset-env": "^7.19.4", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.18.6", + "@svgr/core": "^6.5.1", + "@svgr/plugin-jsx": "^6.5.1", + "@svgr/plugin-svgo": "^6.5.1" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==" + }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "requires": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "@types/eslint": { + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + }, + "@types/express": { + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "requires": { + "@types/unist": "*" + } + }, + "@types/history": { + "version": "4.7.11", + "resolved": "https://registry.npmjs.org/@types/history/-/history-4.7.11.tgz", + "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==" + }, + "@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + }, + "@types/katex": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.11.1.tgz", + "integrity": "sha512-DUlIj2nk0YnJdlWgsFuVKcX27MLW0KbKmGVoUHmFr+74FYYNUDAaj9ZqTADvsbE8rfxuVmSFc7KczYn5Y09ozg==" + }, + "@types/mdast": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", + "integrity": "sha512-W864tg/Osz1+9f4lrGTZpCSO5/z4608eUp19tbozkq2HJK6i3z1kT0H9tlADXuYIb1YYOBByU4Jsqkk75q48qA==", + "requires": { + "@types/unist": "*" + } + }, + "@types/mime": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==" + }, + "@types/node": { + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" + }, + "@types/parse5": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz", + "integrity": "sha512-kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==" + }, + "@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/react": { + "version": "18.0.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", + "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "requires": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "@types/react-router": { + "version": "5.1.19", + "resolved": "https://registry.npmjs.org/@types/react-router/-/react-router-5.1.19.tgz", + "integrity": "sha512-Fv/5kb2STAEMT3wHzdKQK2z8xKq38EDIGVrutYLmQVVLe+4orDFquU52hQrULnEHinMKv9FSA6lf9+uNT1ITtA==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*" + } + }, + "@types/react-router-config": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/@types/react-router-config/-/react-router-config-5.0.6.tgz", + "integrity": "sha512-db1mx37a1EJDf1XeX8jJN7R3PZABmJQXR8r28yUjVMFSjkmnQo6X6pOEEmNl+Tp2gYQOGPdYbFIipBtdElZ3Yg==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/react-router-dom": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@types/react-router-dom/-/react-router-dom-5.3.3.tgz", + "integrity": "sha512-kpqnYK4wcdm5UaWI3fLcELopqLrHgLqNsdpHauzlQktfkHL3npOSwtj1Uz9oKBAzs7lFtVkV8j83voAz2D8fhw==", + "requires": { + "@types/history": "^4.7.11", + "@types/react": "*", + "@types/react-router": "*" + } + }, + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "@types/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==", + "requires": { + "@types/node": "*" + } + }, + "@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "requires": { + "@types/express": "*" + } + }, + "@types/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", + "requires": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "requires": { + "@types/node": "*" + } + }, + "@types/unist": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", + "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" + }, + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "requires": { + "@types/node": "*" + } + }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + } + } + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "requires": {} + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "address": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.1.tgz", + "integrity": "sha512-B+6bi5D34+fDYENiH5qOlA0cV2rAGKuWZ9LeyUUehbXy8e0VS9e498yO0Jeeh+iM+6KbfudHTFjXw2MmJD4QRA==" + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "requires": { + "ajv": "^8.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + } + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "algoliasearch": { + "version": "4.14.2", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.14.2.tgz", + "integrity": "sha512-ngbEQonGEmf8dyEh5f+uOIihv4176dgbuOZspiuhmTTBRBuzWu3KCGHre6uHj5YyuC7pNvQGzB6ZNJyZi0z+Sg==", + "requires": { + "@algolia/cache-browser-local-storage": "4.14.2", + "@algolia/cache-common": "4.14.2", + "@algolia/cache-in-memory": "4.14.2", + "@algolia/client-account": "4.14.2", + "@algolia/client-analytics": "4.14.2", + "@algolia/client-common": "4.14.2", + "@algolia/client-personalization": "4.14.2", + "@algolia/client-search": "4.14.2", + "@algolia/logger-common": "4.14.2", + "@algolia/logger-console": "4.14.2", + "@algolia/requester-browser-xhr": "4.14.2", + "@algolia/requester-common": "4.14.2", + "@algolia/requester-node-http": "4.14.2", + "@algolia/transporter": "4.14.2" + } + }, + "algoliasearch-helper": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.11.1.tgz", + "integrity": "sha512-mvsPN3eK4E0bZG0/WlWJjeqe/bUD2KOEVOl0GyL/TGXn6wcpZU8NOuztGHCUKXkyg5gq6YzUakVTmnmSSO5Yiw==", + "requires": { + "@algolia/events": "^4.0.1" + } + }, + "ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "requires": { + "string-width": "^4.1.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "autoprefixer": { + "version": "10.4.13", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", + "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-lite": "^1.0.30001426", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "requires": { + "follow-redirects": "^1.14.7" + } + }, + "babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-apply-mdx-type-prop": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.6.22.tgz", + "integrity": "sha512-VefL+8o+F/DfK24lPZMtJctrCVOfgbqLAGZSkxwhazQv4VxPg3Za/i40fu22KR2m8eEda+IfSOlPLUSIiLcnCQ==", + "requires": { + "@babel/helper-plugin-utils": "7.10.4", + "@mdx-js/util": "1.6.22" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-extract-import-names": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.6.22.tgz", + "integrity": "sha512-yJ9BsJaISua7d8zNT7oRG1ZLBJCIdZ4PZqmH8qa9N5AK01ifk3fnkc98AXhtzE7UkfCsEumvoQWgoYLhOnJ7jQ==", + "requires": { + "@babel/helper-plugin-utils": "7.10.4" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + } + } + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "requires": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + } + }, + "bail": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", + "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==" + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base16": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", + "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "bonjour-service": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "requires": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "boxen": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-6.2.1.tgz", + "integrity": "sha512-H4PEsJXfFI/Pt8sjDWbHlQPx4zL/bvSQjcilJmaulGt5mLDorHOHpmdXAJcBcmru7PhYSp/cDMWRko4ZUMFkSw==", + "requires": { + "ansi-align": "^3.0.1", + "camelcase": "^6.2.0", + "chalk": "^4.1.2", + "cli-boxes": "^3.0.0", + "string-width": "^5.0.1", + "type-fest": "^2.5.0", + "widest-line": "^4.0.1", + "wrap-ansi": "^8.0.1" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + }, + "normalize-url": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", + "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001430", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz", + "integrity": "sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg==" + }, + "ccount": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.1.0.tgz", + "integrity": "sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==" + }, + "character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==" + }, + "character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==" + }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==" + }, + "ci-info": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==" + }, + "clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "requires": { + "source-map": "~0.6.0" + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + }, + "cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==" + }, + "cli-table3": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz", + "integrity": "sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==", + "requires": { + "@colors/colors": "1.5.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + } + } + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clsx": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz", + "integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==" + }, + "collapse-white-space": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz", + "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==" + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==" + }, + "combine-promises": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/combine-promises/-/combine-promises-1.1.0.tgz", + "integrity": "sha512-ZI9jvcLDxqwaXEixOhArm3r7ReIivsXkpbyEWyeOhzz1QS0iSgBPnWvEqvIQtYyamGCYA88gFhmUrs9hrrQ0pg==" + }, + "comma-separated-tokens": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz", + "integrity": "sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==" + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + } + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + } + }, + "connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==" + }, + "consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==" + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==" + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "copy-text-to-clipboard": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/copy-text-to-clipboard/-/copy-text-to-clipboard-3.0.1.tgz", + "integrity": "sha512-rvVsHrpFcL4F2P8ihsoLdFHmd404+CMg71S756oRSeQgqk51U3kicGdnvfkrxva0xXH92SjGS62B0XIJsbh+9Q==" + }, + "copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", + "requires": { + "fast-glob": "^3.2.11", + "glob-parent": "^6.0.1", + "globby": "^13.1.1", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "requires": { + "is-glob": "^4.0.3" + } + }, + "globby": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==" + } + } + }, + "core-js": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==" + }, + "core-js-compat": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "requires": { + "browserslist": "^4.21.4" + } + }, + "core-js-pure": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" + }, + "css-declaration-sorter": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "requires": {} + }, + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "requires": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + } + }, + "css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "requires": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "requires": { + "cssnano-preset-default": "^5.2.13", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + } + }, + "cssnano-preset-advanced": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.9.tgz", + "integrity": "sha512-njnh4pp1xCsibJcEHnWZb4EEzni0ePMqPuPNyuWT4Z+YeXmsgqNuTPIljXFEXhxGsWs9183JkXgHxc1TcsahIg==", + "requires": { + "autoprefixer": "^10.4.12", + "cssnano-preset-default": "^5.2.13", + "postcss-discard-unused": "^5.1.0", + "postcss-merge-idents": "^5.1.1", + "postcss-reduce-idents": "^5.2.0", + "postcss-zindex": "^5.1.0" + } + }, + "cssnano-preset-default": { + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "requires": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + } + }, + "cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "requires": {} + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + } + }, + "csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + }, + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "requires": { + "execa": "^5.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "requires": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detab": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detab/-/detab-2.0.4.tgz", + "integrity": "sha512-8zdsQA5bIkoRECvCrNKPla84lyoR7DSAyf7p0YgXzBO9PDJx8KntPUay7NS6yp+KdxdVtiE5SpHKtbp2ZQyA9g==", + "requires": { + "repeat-string": "^1.5.4" + } + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "detect-port": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", + "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", + "requires": { + "address": "^1.0.1", + "debug": "4" + } + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==" + }, + "dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", + "requires": { + "@leichtgewicht/ip-codec": "^2.0.1" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + } + } + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexer3": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", + "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" + }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + }, + "emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "emoticon": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-3.2.0.tgz", + "integrity": "sha512-SNujglcLTTg+lDAcApPNgEdudaqQFiAbJCqzjNxJkvN9vAwCGi0uu8IUVvx+f16h+V44KCY6Y2yboroc9pilHg==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "entities": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "eta": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/eta/-/eta-1.12.3.tgz", + "integrity": "sha512-qHixwbDLtekO/d51Yr4glcaUJCIjGVJyTzuqV4GPlgZo1YpgOKG+avQynErZIYrfM6JIJdtiG2Kox8tbb+DoGg==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "eval": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.8.tgz", + "integrity": "sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==", + "requires": { + "@types/node": "*", + "require-like": ">= 0.1.1" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "requires": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "dependencies": { + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + } + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-url-parser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", + "integrity": "sha512-5jOCVXADYNuRkKFzNJ0dCCewsZiYo0dz8QNYljkOpFC6r2U4OBmKtvm/Tsuh4w1YYdDqDb31a8TVhBJ2OJKdqQ==", + "requires": { + "punycode": "^1.3.2" + } + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fbemitter": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", + "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", + "requires": { + "fbjs": "^3.0.0" + } + }, + "fbjs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", + "requires": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.30" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" + }, + "feed": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/feed/-/feed-4.2.2.tgz", + "integrity": "sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==", + "requires": { + "xml-js": "^1.6.11" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flux": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", + "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", + "requires": { + "fbemitter": "^3.0.0", + "fbjs": "^3.0.1" + } + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "fork-ts-checker-webpack-plugin": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.2.tgz", + "integrity": "sha512-m5cUmF30xkZ7h4tWUgTAcEaKmUW7tfyUyTqNNOz7OxWJ0v1VWKTcOvH8FWHUwSjlW/356Ijc9vi3XfcPstpQKA==", + "requires": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + } + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "github-slugger": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", + "integrity": "sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "requires": { + "ini": "2.0.0" + }, + "dependencies": { + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==" + } + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + }, + "gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "requires": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "dependencies": { + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + } + } + }, + "gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "requires": { + "duplexer": "^0.1.2" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==" + }, + "hast-to-hyperscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz", + "integrity": "sha512-zQgLKqF+O2F72S1aa4y2ivxzSlko3MAvxkwG8ehGmNiqd98BIN3JM1rAJPmplEyLmGLO2QZYJtIneOSZ2YbJuA==", + "requires": { + "@types/unist": "^2.0.3", + "comma-separated-tokens": "^1.0.0", + "property-information": "^5.3.0", + "space-separated-tokens": "^1.0.0", + "style-to-object": "^0.3.0", + "unist-util-is": "^4.0.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-from-parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.1.tgz", + "integrity": "sha512-jeJUWiN5pSxW12Rh01smtVkZgZr33wBokLzKLwinYOUfSzm1Nl/c3GUGebDyOKjdsRgMvoVbV0VpAcpjF4NrJA==", + "requires": { + "@types/parse5": "^5.0.0", + "hastscript": "^6.0.0", + "property-information": "^5.0.0", + "vfile": "^4.0.0", + "vfile-location": "^3.2.0", + "web-namespaces": "^1.0.0" + } + }, + "hast-util-is-element": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz", + "integrity": "sha512-oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==" + }, + "hast-util-parse-selector": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz", + "integrity": "sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==" + }, + "hast-util-raw": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-6.0.1.tgz", + "integrity": "sha512-ZMuiYA+UF7BXBtsTBNcLBF5HzXzkyE6MLzJnL605LKE8GJylNjGc4jjxazAHUtcwT5/CEt6afRKViYB4X66dig==", + "requires": { + "@types/hast": "^2.0.0", + "hast-util-from-parse5": "^6.0.0", + "hast-util-to-parse5": "^6.0.0", + "html-void-elements": "^1.0.0", + "parse5": "^6.0.0", + "unist-util-position": "^3.0.0", + "vfile": "^4.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + } + } + }, + "hast-util-to-parse5": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-6.0.0.tgz", + "integrity": "sha512-Lu5m6Lgm/fWuz8eWnrKezHtVY83JeRGaNQ2kn9aJgqaxvVkFCZQBEhgodZUDUvoodgyROHDb3r5IxAEdl6suJQ==", + "requires": { + "hast-to-hyperscript": "^9.0.0", + "property-information": "^5.0.0", + "web-namespaces": "^1.0.0", + "xtend": "^4.0.0", + "zwitch": "^1.0.0" + } + }, + "hast-util-to-text": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-2.0.1.tgz", + "integrity": "sha512-8nsgCARfs6VkwH2jJU9b8LNTuR4700na+0h3PqCaEk4MAnMDeu5P0tP8mjk9LLNGxIeQRLbiDbZVw6rku+pYsQ==", + "requires": { + "hast-util-is-element": "^1.0.0", + "repeat-string": "^1.0.0", + "unist-util-find-after": "^3.0.0" + } + }, + "hastscript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-6.0.0.tgz", + "integrity": "sha512-nDM6bvd7lIqDUiYEiu5Sl/+6ReP0BMk/2f4U/Rooccxkj0P5nm+acM5PrGJ/t5I8qPGiqZSE6hVAwZEdZIvP4w==", + "requires": { + "@types/hast": "^2.0.0", + "comma-separated-tokens": "^1.0.0", + "hast-util-parse-selector": "^2.0.0", + "property-information": "^5.0.0", + "space-separated-tokens": "^1.0.0" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==" + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==" + }, + "html-void-elements": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-1.0.5.tgz", + "integrity": "sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==" + }, + "html-webpack-plugin": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "requires": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + } + }, + "htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "dependencies": { + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==" + } + } + }, + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "requires": {} + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==" + }, + "image-size": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", + "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", + "requires": { + "queue": "6.0.2" + } + }, + "immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha512-m7ZEHgtw69qOGw+jwxXkHlrlIPdTGkyh66zXZ1ajZbxkDBNjSY/LGbmjc7h0s2ELsUDTAhFr55TrPSSqJGPG0A==" + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + }, + "infima": { + "version": "0.2.0-alpha.42", + "resolved": "https://registry.npmjs.org/infima/-/infima-0.2.0-alpha.42.tgz", + "integrity": "sha512-ift8OXNbQQwtbIt6z16KnSWP7uJ/SysSMFI4F87MNRTicypfl4Pv3E2OGVv6N3nSZFJvA8imYulCBS64iyHYww==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==" + }, + "is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==" + }, + "is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "requires": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "requires": { + "ci-info": "^2.0.0" + }, + "dependencies": { + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + } + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==" + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==" + }, + "is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "requires": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + } + }, + "is-npm": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz", + "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==" + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==" + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==" + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "is-whitespace-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz", + "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==" + }, + "is-word-character": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz", + "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==" + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==" + }, + "jest-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", + "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "requires": { + "@jest/types": "^29.2.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + } + }, + "jest-worker": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", + "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "requires": { + "@types/node": "*", + "jest-util": "^29.2.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "joi": { + "version": "17.7.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.7.0.tgz", + "integrity": "sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==", + "requires": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@sideway/pinpoint": "^2.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "katex": { + "version": "0.13.24", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.13.24.tgz", + "integrity": "sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==", + "requires": { + "commander": "^8.0.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==" + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "requires": { + "package-json": "^6.3.0" + } + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + }, + "lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==" + }, + "loader-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.3.tgz", + "integrity": "sha512-THWqIsn8QRnvLl0shHYVBN9syumU8pYWEHPTmkiVGd+7K5eFNVSY6AJhRvgGF70gg1Dz+l/k8WicvFCxdEs60A==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.curry": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", + "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.flow": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/lodash.flow/-/lodash.flow-3.5.0.tgz", + "integrity": "sha512-ff3BX/tSioo+XojX4MOsOMhJw0nZoUEF011LX8g8d3gvjVbxd89cCio4BCXronjxcTUIJUoqKEUA+n4CqvvRPw==" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "markdown-escapes": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", + "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" + }, + "mdast-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==", + "requires": { + "unist-util-remove": "^2.0.0" + } + }, + "mdast-util-definitions": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-4.0.0.tgz", + "integrity": "sha512-k8AJ6aNnUkB7IE+5azR9h81O5EQ/cTDXtWdMq9Kk5KcEW/8ritU5CeLg/9HhOC++nALHBlaogJ5jz0Ybk3kPMQ==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-hast": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz", + "integrity": "sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA==", + "requires": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "mdast-util-definitions": "^4.0.0", + "mdurl": "^1.0.0", + "unist-builder": "^2.0.0", + "unist-util-generated": "^1.0.0", + "unist-util-position": "^3.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==" + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "memfs": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", + "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", + "requires": { + "fs-monkey": "^1.0.3" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.33.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz", + "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==" + }, + "mime-types": { + "version": "2.1.18", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", + "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", + "requires": { + "mime-db": "~1.33.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "mini-css-extract-plugin": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "requires": { + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==" + }, + "mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "requires": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + } + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-emoji": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz", + "integrity": "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==", + "requires": { + "lodash": "^4.17.21" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==" + }, + "normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==" + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "requires": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "requires": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-numeric-range": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz", + "integrity": "sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==" + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "requires": { + "entities": "^4.4.0" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==" + } + } + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "requires": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-colormin": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "requires": { + "browserslist": "^4.16.6", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "requires": {} + }, + "postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "requires": {} + }, + "postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "requires": {} + }, + "postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "requires": {} + }, + "postcss-discard-unused": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", + "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-loader": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", + "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.7" + } + }, + "postcss-merge-idents": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", + "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "requires": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + } + }, + "postcss-merge-rules": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "requires": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "requires": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "requires": {} + }, + "postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "requires": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "requires": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "requires": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-idents": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", + "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-reduce-initial": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "requires": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-sort-media-queries": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.3.0.tgz", + "integrity": "sha512-jAl8gJM2DvuIJiI9sL1CuiHtKM4s5aEIomkU8G3LFvbP+p8i7Sz8VV63uieTgoewGqKbi+hxBTiOKJlB35upCg==", + "requires": { + "sort-css-media-queries": "2.1.0" + } + }, + "postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "requires": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + } + }, + "postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "requires": { + "postcss-selector-parser": "^6.0.5" + } + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "postcss-zindex": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", + "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "requires": {} + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" + }, + "pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "pretty-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", + "integrity": "sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==" + }, + "prism-react-renderer": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/prism-react-renderer/-/prism-react-renderer-1.3.5.tgz", + "integrity": "sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==", + "requires": {} + }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "property-information": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-5.6.0.tgz", + "integrity": "sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==", + "requires": { + "xtend": "^4.0.0" + } + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, + "pupa": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", + "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", + "requires": { + "escape-goat": "^2.0.0" + } + }, + "pure-color": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/pure-color/-/pure-color-1.3.0.tgz", + "integrity": "sha512-QFADYnsVoBMw1srW7OVKEYjG+MbIa49s54w1MA1EDY6r2r/sTcKKYqRX1f4GYvnXP7eN/Pe9HFcX+hwzmrXRHA==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + } + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "react-base16-styling": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.6.0.tgz", + "integrity": "sha512-yvh/7CArceR/jNATXOKDlvTnPKPmGZz7zsenQ3jUwLzHkNUR0CvY3yGYJbWJ/nnxsL8Sgmt5cO3/SILVuPO6TQ==", + "requires": { + "base16": "^1.0.0", + "lodash.curry": "^4.0.1", + "lodash.flow": "^3.3.0", + "pure-color": "^1.2.0" + } + }, + "react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "requires": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==" + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "react-dom": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", + "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "scheduler": "^0.20.2" + } + }, + "react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "react-fast-compare": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", + "integrity": "sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==" + }, + "react-helmet-async": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz", + "integrity": "sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==", + "requires": { + "@babel/runtime": "^7.12.5", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "react-fast-compare": "^3.2.0", + "shallowequal": "^1.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-json-view": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/react-json-view/-/react-json-view-1.21.3.tgz", + "integrity": "sha512-13p8IREj9/x/Ye4WI/JpjhoIwuzEgUAtgJZNBJckfzJt1qyh24BdTm6UQNGnyTq9dapQdrqvquZTo3dz1X6Cjw==", + "requires": { + "flux": "^4.0.1", + "react-base16-styling": "^0.6.0", + "react-lifecycles-compat": "^3.0.4", + "react-textarea-autosize": "^8.3.2" + } + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-loadable": { + "version": "npm:@docusaurus/react-loadable@5.5.2", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", + "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "requires": { + "@types/react": "*", + "prop-types": "^15.6.2" + } + }, + "react-loadable-ssr-addon-v5-slorber": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-loadable-ssr-addon-v5-slorber/-/react-loadable-ssr-addon-v5-slorber-1.0.1.tgz", + "integrity": "sha512-lq3Lyw1lGku8zUEJPDxsNm1AfYHBrO9Y1+olAYwpUJ2IGFBskM0DMKok97A6LWUpHm+o7IvQBOWu9MLenp9Z+A==", + "requires": { + "@babel/runtime": "^7.10.3" + } + }, + "react-router": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz", + "integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-router-config": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz", + "integrity": "sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "react-router-dom": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.3.4.tgz", + "integrity": "sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==", + "requires": { + "@babel/runtime": "^7.12.13", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.3.4", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-textarea-autosize": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.3.4.tgz", + "integrity": "sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==", + "requires": { + "@babel/runtime": "^7.10.2", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "reading-time": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/reading-time/-/reading-time-1.5.0.tgz", + "integrity": "sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "requires": { + "minimatch": "^3.0.5" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "requires": { + "regenerate": "^1.4.2" + } + }, + "regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + }, + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regexpu-core": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "requires": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + } + }, + "registry-auth-token": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz", + "integrity": "sha512-PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==", + "requires": { + "rc": "1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==" + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + } + } + }, + "rehype-katex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/rehype-katex/-/rehype-katex-5.0.0.tgz", + "integrity": "sha512-ksSuEKCql/IiIadOHiKRMjypva9BLhuwQNascMqaoGLDVd0k2NlE2wMvgZ3rpItzRKCd6vs8s7MFbb8pcR0AEg==", + "requires": { + "@types/katex": "^0.11.0", + "hast-util-to-text": "^2.0.0", + "katex": "^0.13.0", + "rehype-parse": "^7.0.0", + "unified": "^9.0.0", + "unist-util-visit": "^2.0.0" + } + }, + "rehype-parse": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz", + "integrity": "sha512-fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==", + "requires": { + "hast-util-from-parse5": "^6.0.0", + "parse5": "^6.0.0" + }, + "dependencies": { + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==" + }, + "remark-emoji": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/remark-emoji/-/remark-emoji-2.2.0.tgz", + "integrity": "sha512-P3cj9s5ggsUvWw5fS2uzCHJMGuXYRb0NnZqYlNecewXt8QBU9n5vW3DUUKOhepS8F9CwdMx9B8a3i7pqFWAI5w==", + "requires": { + "emoticon": "^3.2.0", + "node-emoji": "^1.10.0", + "unist-util-visit": "^2.0.3" + } + }, + "remark-footnotes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/remark-footnotes/-/remark-footnotes-2.0.0.tgz", + "integrity": "sha512-3Clt8ZMH75Ayjp9q4CorNeyjwIxHFcTkaektplKGl2A1jNGEUey8cKL0ZC5vJwfcD5GFGsNLImLG/NGzWIzoMQ==" + }, + "remark-math": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-math/-/remark-math-3.0.1.tgz", + "integrity": "sha512-epT77R/HK0x7NqrWHdSV75uNLwn8g9qTyMqCRCDujL0vj/6T6+yhdrR7mjELWtkse+Fw02kijAaBuVcHBor1+Q==" + }, + "remark-mdx": { + "version": "1.6.22", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-1.6.22.tgz", + "integrity": "sha512-phMHBJgeV76uyFkH4rvzCftLfKCr2RZuF+/gmVcaKrpsihyzmhXjA0BEMDaPTXG5y8qZOKPVo83NAOX01LPnOQ==", + "requires": { + "@babel/core": "7.12.9", + "@babel/helper-plugin-utils": "7.10.4", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.12.1", + "@mdx-js/util": "1.6.22", + "is-alphabetical": "1.0.4", + "remark-parse": "8.0.3", + "unified": "9.2.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", + "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.5", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.7", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.9", + "@babel/types": "^7.12.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", + "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==" + }, + "unified": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz", + "integrity": "sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + } + } + }, + "remark-parse": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz", + "integrity": "sha512-E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==", + "requires": { + "ccount": "^1.0.0", + "collapse-white-space": "^1.0.2", + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-whitespace-character": "^1.0.0", + "is-word-character": "^1.0.0", + "markdown-escapes": "^1.0.0", + "parse-entities": "^2.0.0", + "repeat-string": "^1.5.4", + "state-toggle": "^1.0.0", + "trim": "0.0.1", + "trim-trailing-lines": "^1.0.0", + "unherit": "^1.0.4", + "unist-util-remove-position": "^2.0.0", + "vfile-location": "^3.0.0", + "xtend": "^4.0.1" + } + }, + "remark-squeeze-paragraphs": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz", + "integrity": "sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw==", + "requires": { + "mdast-squeeze-paragraphs": "^4.0.0" + } + }, + "renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + } + } + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "rtl-detect": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rtl-detect/-/rtl-detect-1.0.4.tgz", + "integrity": "sha512-EBR4I2VDSSYr7PkBmFy04uhycIpDKp+21p/jARYXlCSjQksTBQcJ0HFUPOO79EPPH5JS6VAhiIQbycf0O3JAxQ==" + }, + "rtlcss": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", + "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "requires": { + "find-up": "^5.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.3.11", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + } + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "rxjs": { + "version": "7.5.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", + "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "scheduler": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", + "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "requires": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "selfsigned": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", + "requires": { + "node-forge": "^1" + } + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "requires": { + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + } + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-handler": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.5.tgz", + "integrity": "sha512-ijPFle6Hwe8zfmBxJdE+5fta53fdIY0lHISJvuikXB3VYFafRjMRpOffSPvCYsbKyBA7pvy9oYr/BT1O3EArlg==", + "requires": { + "bytes": "3.0.0", + "content-disposition": "0.5.2", + "fast-url-parser": "1.1.3", + "mime-types": "2.1.18", + "minimatch": "3.1.2", + "path-is-inside": "1.0.2", + "path-to-regexp": "2.2.1", + "range-parser": "1.2.0" + }, + "dependencies": { + "path-to-regexp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz", + "integrity": "sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ==" + } + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "shell-quote": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", + "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "requires": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + } + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "sitemap": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", + "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "requires": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "dependencies": { + "@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==" + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "sort-css-media-queries": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", + "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "space-separated-tokens": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", + "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "state-toggle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz", + "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "std-env": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.3.0.tgz", + "integrity": "sha512-cNNS+VYsXIs5gI6gJipO4qZ8YYT274JHvNnQ1/R/x8Q8mdP0qj0zoMchRXmBNPqp/0eOEhX+3g7g6Fgb7meLIQ==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "requires": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==" + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "style-to-object": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", + "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "requires": { + "inline-style-parser": "0.1.1" + } + }, + "stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "requires": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "requires": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + }, + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "dependencies": { + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "tiny-invariant": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz", + "integrity": "sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha512-YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==" + }, + "trim-trailing-lines": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.4.tgz", + "integrity": "sha512-rjUWSqnfTNrjbB9NQWfPMH/xRK1deHeGsHoVfpxJ++XeYXE0d6B1En37AHfw3jtfTU7dzMzZL2jjpe8Qb5gLIQ==" + }, + "trough": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", + "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==" + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + } + } + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "peer": true + }, + "ua-parser-js": { + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==" + }, + "unherit": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz", + "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==", + "requires": { + "inherits": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==" + }, + "unified": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", + "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", + "requires": { + "bail": "^1.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^2.0.0", + "trough": "^1.0.0", + "vfile": "^4.0.0" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "requires": { + "crypto-random-string": "^2.0.0" + } + }, + "unist-builder": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz", + "integrity": "sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw==" + }, + "unist-util-find-after": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-3.0.0.tgz", + "integrity": "sha512-ojlBqfsBftYXExNu3+hHLfJQ/X1jYY/9vdm4yZWjIbf0VuWF6CRufci1ZyoD/wV2TYMKxXUoNuoqwy+CkgzAiQ==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-generated": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-1.1.6.tgz", + "integrity": "sha512-cln2Mm1/CZzN5ttGK7vkoGw+RZ8VcUH6BtGbq98DDtRGquAAOXig1mrBQYelOwMXYS8rK+vZDyyojSjp7JX+Lg==" + }, + "unist-util-is": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", + "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==" + }, + "unist-util-position": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-3.1.0.tgz", + "integrity": "sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==" + }, + "unist-util-remove": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz", + "integrity": "sha512-J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==", + "requires": { + "unist-util-is": "^4.0.0" + } + }, + "unist-util-remove-position": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz", + "integrity": "sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==", + "requires": { + "unist-util-visit": "^2.0.0" + } + }, + "unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "requires": { + "@types/unist": "^2.0.2" + } + }, + "unist-util-visit": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz", + "integrity": "sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0", + "unist-util-visit-parents": "^3.0.0" + } + }, + "unist-util-visit-parents": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz", + "integrity": "sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-is": "^4.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "update-notifier": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz", + "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==", + "requires": { + "boxen": "^5.0.0", + "chalk": "^4.1.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.4.0", + "is-npm": "^5.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.1.0", + "pupa": "^2.1.1", + "semver": "^7.3.4", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "boxen": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz", + "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==", + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^6.2.0", + "chalk": "^4.1.0", + "cli-boxes": "^2.2.1", + "string-width": "^4.2.2", + "type-fest": "^0.20.2", + "widest-line": "^3.1.0", + "wrap-ansi": "^7.0.0" + } + }, + "cli-boxes": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==" + }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "requires": { + "string-width": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + } + } + }, + "url-loader": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", + "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", + "requires": { + "loader-utils": "^2.0.0", + "mime-types": "^2.1.27", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use-composed-ref": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.3.0.tgz", + "integrity": "sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==", + "requires": {} + }, + "use-isomorphic-layout-effect": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz", + "integrity": "sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==", + "requires": {} + }, + "use-latest": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.2.1.tgz", + "integrity": "sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==", + "requires": { + "use-isomorphic-layout-effect": "^1.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "utility-types": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", + "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vfile": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", + "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", + "requires": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^2.0.0", + "vfile-message": "^2.0.0" + } + }, + "vfile-location": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-3.2.0.tgz", + "integrity": "sha512-aLEIZKv/oxuCDZ8lkJGhuhztf/BW4M+iHdCwglA/eWc+vtuRFJj8EtgceYFX4LRjOhCAAiNHsKGssC6onJ+jbA==" + }, + "vfile-message": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", + "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", + "requires": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + } + }, + "wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "requires": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-namespaces": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz", + "integrity": "sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "dependencies": { + "commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==" + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "ws": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz", + "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==", + "requires": {} + } + } + }, + "webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==" + }, + "webpackbar": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/webpackbar/-/webpackbar-5.0.2.tgz", + "integrity": "sha512-BmFJo7veBDgQzfWXl/wwYXr/VFus0614qZ8i9znqcl9fnEdiVkdbi0TedLQ6xAK92HZHDJ0QmyQ0fmuZPAgCYQ==", + "requires": { + "chalk": "^4.1.0", + "consola": "^2.15.3", + "pretty-time": "^1.1.0", + "std-env": "^3.0.1" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "widest-line": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", + "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", + "requires": { + "string-width": "^5.0.1" + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==" + }, + "wrap-ansi": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.0.1.tgz", + "integrity": "sha512-QFF+ufAqhoYHvoHdajT/Po7KoXVBPXS2bgjIam5isfWJPfIOnQZ50JtUiVvCv/sjgacf3yRrt2ZKUZ/V4itN4g==", + "requires": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" + }, + "ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" + }, + "strip-ansi": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", + "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", + "requires": { + "ansi-regex": "^6.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" + }, + "xml-js": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/xml-js/-/xml-js-1.6.11.tgz", + "integrity": "sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g==", + "requires": { + "sax": "^1.2.4" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zwitch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", + "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..54de8ff --- /dev/null +++ b/package.json @@ -0,0 +1,47 @@ +{ + "name": "fi", + "version": "0.0.0", + "private": true, + "scripts": { + "docusaurus": "docusaurus", + "start": "docusaurus start", + "build": "docusaurus build", + "swizzle": "docusaurus swizzle", + "deploy": "docusaurus deploy", + "clear": "docusaurus clear", + "serve": "docusaurus serve", + "write-translations": "docusaurus write-translations", + "write-heading-ids": "docusaurus write-heading-ids" + }, + "dependencies": { + "@docusaurus/core": "2.2.0", + "@docusaurus/preset-classic": "2.2.0", + "@mdx-js/react": "^1.6.22", + "clsx": "^1.2.1", + "dotenv": "^16.0.3", + "hast-util-is-element": "^1.1.0", + "prism-react-renderer": "^1.3.5", + "react": "^17.0.2", + "react-dom": "^17.0.2", + "rehype-katex": "^5.0.0", + "remark-math": "^3.0.1" + }, + "devDependencies": { + "@docusaurus/module-type-aliases": "2.2.0" + }, + "browserslist": { + "production": [ + ">0.5%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "engines": { + "node": ">=16.14" + } +} diff --git a/pb071/00-intro-pb071.md b/pb071/00-intro-pb071.md new file mode 100644 index 0000000..4e04b5b --- /dev/null +++ b/pb071/00-intro-pb071.md @@ -0,0 +1,5 @@ +--- +id: pb071-intro +title: Introduction +slug: /intro +--- diff --git a/pb071/bonuses/03.md b/pb071/bonuses/03.md new file mode 100644 index 0000000..b46450e --- /dev/null +++ b/pb071/bonuses/03.md @@ -0,0 +1,49 @@ +--- +id: seminar-03 +title: 3rd seminar +description: | + Select sort implementation on arrays. +--- + +This assignment has two versions. For the light version you can get 0.5 K₡. For +the _full fat_ one 1 K₡. **You can choose only one of them**. + +To both of them you are given some basic tests. You can also have a look at the +code used by the tests and use it to your advantage. + +Details can be found in the doxygen comments included in the source files. + +## Light version (`main_light.c`) + +[Source](pathname:///files/pb071/bonuses/03/main_light.c) + +For the light version you have 3 functions to finish: + +1. `swap` - that swaps two ints passed by pointers. +2. `maximum` - that returns index of the biggest `int` in the array. +3. `select_sort` - that sorts passed array using Select Sort. + +## Full fat version (`main.c`) + +[Source](pathname:///files/pb071/bonuses/03/main.c) + +For the full fat version you have 4 functions to implement: + +1. `swap` - that swaps two variables passed by pointers. +2. `maximum` - that returns index of the biggest element in the array using the + comparator. +3. `select_sort` - that sorts passed array using Select Sort. +4. `int_comparator` - that is used for generic sort and maximum + +To 2nd and 3rd function you are given a pseudocode that you can use to implement +it. + +## Submitting + +Ideally submit the assignment through the merge request. Step-by-step tutorial is +present [here](../mr). For setting assignee my xlogin is `xfocko`. + +In case you do not want to experiment on GitLab, send me the source code via email, +but please prefix subject with: `[PB071/14][seminar-03]` + +Deadline for the submission of the bonus is **March 27th 24:00**. diff --git a/pb071/bonuses/04.md b/pb071/bonuses/04.md new file mode 100644 index 0000000..4b8b6c0 --- /dev/null +++ b/pb071/bonuses/04.md @@ -0,0 +1,165 @@ +--- +id: seminar-04 +title: 4th seminar +description: | + Robot in a maze. +--- + +For this bonus you can get 1.5 K₡ and another 0.5 K₡ for the bonus part of it. + +[Source](pathname://files/pb071/bonuses/04/) + +## Introduction + +In this task you are given a 2D map for a robot. The map contains multiple markers: + +- `^v<>` - which denote the directions the robot will be facing when he steps into + the cell or starts on it. +- `K` - denotes the key. +- `T` - denotes the treasure. + +In case robot lands at the beginning on unknown field, e.g. `.` in the tests, he +faces the direction that is given through the parameter. + +Your task is to write the `walk` function that returns end result of the walk. +Walk can end in multiple ways: + +- `FOUND_TREASURE` - when you find the treasure +- `FOUND_KEY` - when you find the key +- `OUT_OF_BOUNDS` - when the robot falls off the map +- `INFINITE_LOOP` - in case you will implement the bonus +- `NONE` - which is used right now as a default return in the skeleton, has no meaning + later on + +## Hard requirement + +There is only one hard requirement that tests cannot check. + +**You are not allowed to use any indexing related to map or your current position** +**in your implementation.** + +Reason for this requirement is for you to get used to working with pointers. And +for the implementation of this task it is much easier to use just the pointers. + +## Example of run + +For a better understanding of your task, I will describe a simple walk with corresponding +function call. + +```c +const char *map = ( + ">.v" + ".K<" + "..." +); + +walk(map, &map[6], '^', 3, 3); +``` + +For this call, you should return `FOUND_KEY`. Let us walk through the walk ;) + +1. Robot is placed at the bottom left corner, there is no direction specified, so + he follows the direction given by parameter (upwards, denoted as `N`(orth), + so that we can differentiate markers on the map with the robot when using printing + function). + + ``` + >.v + .K< + N.. + ``` + +2. Moves up: + + ``` + >.v + NK< + ... + ``` + +3. Moves up (now covers `>`), changes direction to right: + + ``` + E.v + .K< + ... + ``` + +4. Moves to right: + + ``` + >Ev + .K< + ... + ``` + +5. Moves to right, faces south: + + ``` + >.S + .K< + ... + ``` + +6. Moves down, faces west: + + ``` + >.v + .KW + ... + ``` + +7. Moves left, founds key, returns `FOUND_KEY`: + + ``` + >.v + .W< + ... + ``` + +## Bonus part + +For the bonus part you are supposed to return `INFINITE_LOOP` in case the robot +is stuck in the infinite loop. There are three tests for it. If you pass only the +easy and medium one, you can get 0.25 K₡ for doing your best and trying it out. :) + +## Easter eggs + +- Statistics + + | Language | Files | Lines | Blanks | Comments | Code | Complexity | + | ---------------- | ----: | ----: | -----: | -------: | ---: | ---------: | + | _C_ | 4 | 458 | 34 | 58 | 366 | 33 | + | `test_maze.c` | | 225 | 9 | 0 | 216 | 4 | + | `sol.maze.c` | | 141 | 15 | 28 | 98 | 24 | + | `maze.c` | | 84 | 8 | 30 | 46 | 5 | + | `main.c` | | 8 | 2 | 0 | 6 | 0 | + | _C Header_ | 1 | 33 | 3 | 19 | 11 | 0 | + | `maze.h` | | 33 | 3 | 19 | 11 | 0 | + | _CMake_ | 1 | 25 | 4 | 6 | 15 | 2 | + | `CMakeLists.txt` | | 25 | 4 | 6 | 15 | 2 | + | **Total** | 6 | 516 | 41 | 83 | 392 | 35 | + +- Majority of the line count in solution is caused by the formatting :) +- Included headers can be interpreted as hints, same goes for the unimplemented + `static` functions which you can use, but **are not required**. +- Given `CMakeLists.txt` will generate 2 binaries, `test_maze` and `maze`. + - `test_maze` runs the tests you are given. + - `maze` runs the `main.c`, where you can debug, print mazes and whatever else + you want. +- I keep only one copy of `cut.h` in my repository, so you need to download it from + [here](https://gitlab.fi.muni.cz/pb071/cut/-/jobs/159010/artifacts/file/1header/cut.h) and place it into the directory where you have your source code. +- I would recommend cloning this repository and copying the `maze` directory to + your own repository, since there are multiple files and it may be easier for you. + +In case you have any questions, feel free to reach out to me. + +## Submitting + +Ideally submit the assignment through the merge request. Step-by-step tutorial is +present [here](../mr). For setting assignee my xlogin is `xfocko`. + +In case you do not want to experiment on GitLab, send me the source code via email, +but please prefix subject with: `[PB071/14][seminar-04]` + +Deadline for the submission of the bonus is **April 5th 24:00**. diff --git a/pb071/bonuses/05-06.md b/pb071/bonuses/05-06.md new file mode 100644 index 0000000..4453ab7 --- /dev/null +++ b/pb071/bonuses/05-06.md @@ -0,0 +1,169 @@ +--- +id: seminar-05-06 +title: 5th and 6th seminar +description: | + 200IQ encryption. +--- + +For this bonus you can get at maximum 2.5 K₡. + +[Source](pathname:///files/pb071/bonuses/05-06/) + +## Introduction + +In this bonus you will implement few functions that will be used together for +implementing a very special cipher. + +### Task no. 1: Reverse (0.5 K₡) + +Write a function `char* reverse(const char* text)` that returns copy of the input +string in reversed order (also uppercase). + +In case you are given `NULL`, return `NULL`. + +Example (more in tests): + +```c +char* reversed = reverse("Hello world!"); + +printf("%s\n", reversed); +// "!DLROW OLLEH" + +if (reversed != NULL) { + free(reversed); +} +``` + +### Task no. 2: Vigenère (0.5 K₡) + +Vigenère cipher is similar to the Caesar cipher, but you also have a key that is +used for encrypting (or decrypting). + +Your task is to write two functions: + +- `char* vigenere_encrypt(const char* key, const char* text)` for encrypting +- `char* vigenere_decrypt(const char* key, const char* text)` for decrypting + +In both of those you should return uppercase characters. + +Meaning of the parameters you are given: + +- `key` - String that represents key that is used for \*crypting. It consists of + one word and can have only characters of the alphabet. Does not matter if they + are uppercase or lowercase. +- `text` - String that is to be \*crypted. + +Function returns address of the encrypted (or decrypted) string. Or `NULL` in case +error occurs. + +Example: + +```c +char *encrypted = vigenere_encrypt("CoMPuTeR", "Hello world!"); + +printf("%s\n", encrypted); +// "JSXAI PSINR!" + +if (encrypted != NULL) { + free(encrypted) +} +``` + +#### Bonus part (0.5 K₡) + +If you can utilize helper function that would do both encrypting and decrypting, +you can gain 0.5 K₡. + +Usage of `true`/`false` to decide path in code is prohibited. It leads to merging +of both functions into one. Point of this part is to discover a way to do this +generically in such way that there are no separate paths for one or the other. One +function with no branching for both of them, parametrization is your friend :) + +### Task no. 3: Bit madness (0.5 K₡) + +This is a state of the art crypto. Please do not share :) + +For encrypting: + +1. Split the character that is to be encrypted in halves (4 and 4 bits each). +2. Bits in 1st half are to be split into pairs. Swap bits in those pairs. +3. Then use the 4 bits that you created in the 2nd step for `XOR` with the other + 4 bits. + +This simple and ingenious principle will be illustrated on the following example. +String we want to encrypt is `Hello world!`. We need to encrypt each letter separately, +so we will demonstrate on letter `H`: + +1. Letter `H` is represented in ASCII as `72`. + + `72` represented in binary is: `01001000`. So first 4 bits are: `0100` and last + 4 bits are `1000`. + +2. First half of bits (`0100`) consists of 2 pairs (`01` and `00`) which we swap + (`01 ~> 10` and `00 ~> 00`). That way we get `1000`. + +3. That half is used for xor with the other 4 bits: + + ``` + 1000 // second half + XOR 1000 // first half after 2nd step + -------- + 0000 + ``` + +4. Now we combine both halves (first one is `1000`, which we got from the 2nd step + and second one is `0000`, which we got from the 3rd step) and get `10000000`, + which is encrypted character `H` using this method. + +In case of decryption, reverse those steps. + +Your task is to implement functions: + +- `unsigned char* bit_encrypt(const char* text)` +- `char* bit_decrypt(const unsigned char* text)` + +Example: + +```c +unsigned char* encrypted = bit_encrypt("Hello world!"); + +for (int i = 0; i < 12;i++) { + printf("%x ", encrypted[i]); + //80 9c 95 95 96 11 bc 96 b9 95 9d 10 +} + +if (encrypted != NULL) { + free(encrypted); +} +``` + +### Task no. 4: All combined to BMP (0.5 K₡) + +Authors of the BMP cipher are non-disclosed :) + +Create pair of functions: + +- `unsigned char* bmp_encrypt(const char* key, const char* text)` +- `char* bmp_decrypt(const char* key, const unsigned char* text)` + +BMP cipher consists of following steps for encrypting: + +1. Reverse the input string +2. Use Vigenere on the string you got from step #1 +3. Use bit madness on the string you got from step #2 + +For decrypting, reverse the steps. + +## Submitting + +In case you have any questions, feel free to reach out to me. + +--- + +Ideally submit the assignment through the merge request. Step-by-step tutorial is +present [here](../mr). For setting assignee my xlogin is `xfocko`. + +In case you do not want to experiment on GitLab, send me the source code via email, +but please prefix subject with: `[PB071/14][seminar-05-06]` + +Deadline for the submission of the bonus is **April 21th 24:00**. diff --git a/pb071/bonuses/08.md b/pb071/bonuses/08.md new file mode 100644 index 0000000..98e9f75 --- /dev/null +++ b/pb071/bonuses/08.md @@ -0,0 +1,160 @@ +--- +id: seminar-08 +title: 8th seminar +description: | + Manipulating with files only char-by-char and a magic tree. +--- + +# 8th seminar bonus assignment + +[Source](pathname:///files/pb071/bonuses/08/) + +## Introduction + +In this bonus you can implement two tasks, one of them has a bonus part with generic +solution. + +One is focused on counting ananas or in case of generic version any substring in +the file, but with a restriction on the function you use. + +Other one has a more algorithmic spirit. + +For this bonus you can get at maximum 2.5 K₡. + +## Warning + +**DO NOT COMMIT test data** to your own git repository, since the tests include +files that exceed 10MB by themselves. Even if they are on separate branch, they +take up the space. + +## Testing + +For testing you are provided with python script (requires `click` to be installed: +`pip3 install --user click`) and `Makefile` that provides following targets: + +- `check-counting` - runs the `counting` tests +- `check-counting-bonus` - runs the `counting` tests with bonus implemented +- `check` - runs both `counting` and `counting-bonus` tests +- `clean` - removes output files from the test runs + +## Task no. 1: Counting (0.75 K₡) + +Your first task is to make smallish program that counts occurences of specific +(or given) word from file and writes the number to other file. + +Usage of the program is: + +``` +Usage: ./counting [string-to-be-counted] +``` + +Arguments that are passed to the program represent: + +- `` - path to the file where we count the words +- `` - path to the file where we output the count +- (optional argument) `[string-to-be-counted]` - in case you implement bonus, + otherwise we default to word `ananas` ;) + +In skeleton you are given 3 empty, but documented, functions to implement. + +1. `count_anything` - function accepts input file and substring to be counted in + the file, returns the count. +2. `count_ananas` - same as `count_anything`, but specialized for ananases, the + default implementation from the skeleton expects you to implement `count_anything` + and therefore it just calls the other function. +3. `write_number` - function that writes the number to the file, why would you + need the function is explained later :) + +### Requirements + +For manipulation with the files you are only allowed to use `fopen`, `fclose`, +`fgetc` and `fputc`. Functions like `fprintf` (except for `stderr` or logging) and +`fscanf` are **forbidden**. + +In case you struggle and want to use one of those functions, the solution will be +penalized by 50% of points. + +### Bonus part (0.75 K₡) + +Bonus part of this assignment is to implement `count_anything` rather than `count_ananas`. + +> Smaller hint: This task does not need dynamic allocation :) You just need one +> good helper function and the right idea ;) + +## Task no. 2: Weird trees (1 K₡) + +In this task we are crossing our paths with _algorithms and data structures_. +Your task is to write a program that constructs tree from the file that is given +as an argument and pretty-prints it. + +Input file consists of lines, that include `key` and `rank` in form `key;rank` +or `nil`. Why would we have `nil` in a file? The file represents pre-order iteration +through the tree. Leaves never have rank different than 0, so you can safely assume +2 non-existing `nil`s in the input after you read such node ;) + + + + +
+Example input file + +``` +8;4 +5;3 +3;2 +2;1 +1;0 +nil +4;0 +7;1 +6;0 +nil +11;2 +10;1 +9;0 +nil +12;0 +``` + + +Tree it represents + +![tree](/files/pb071/bonuses/08/tree.png) + +
+ +In this task you are only provided with different trees in the `test-trees` directory. +Implementation and format of the pretty-print is totally up to you. :) + +Example of mine for the tree above: + +``` +8 (rank = 4) ++-- 5 (rank = 3) +| +-- 3 (rank = 2) +| | +-- 2 (rank = 1) +| | | +-- 1 (rank = 0) +| | +-- 4 (rank = 0) +| +-- 7 (rank = 1) +| +-- 6 (rank = 0) ++-- 11 (rank = 2) + +-- 10 (rank = 1) + | +-- 9 (rank = 0) + +-- 12 (rank = 0) +``` + +> Can you find out what are those trees? :) + +## Submitting + +In case you have any questions, feel free to reach out to me. + +--- + +Ideally submit the assignment through the merge request. Step-by-step tutorial is +present [here](../mr). For setting assignee my xlogin is `xfocko`. + +In case you do not want to experiment on GitLab, send me the source code via email, +but please prefix subject with: `[PB071/14][seminar-08]` + +Deadline for the submission of the bonus is **May 4th 24:00**. diff --git a/pb071/bonuses/10.md b/pb071/bonuses/10.md new file mode 100644 index 0000000..ae50bf8 --- /dev/null +++ b/pb071/bonuses/10.md @@ -0,0 +1,162 @@ +--- +id: seminar-10 +title: 10th seminar +description: | + Finding bugs in a hangman. +--- + +[Source](pathname:///files/pb071/bonuses/10/) + +## Introduction + +For this bonus you are given almost finished project - The Hangman Game. Your +task is to try the game, in case you find any bugs point them out and cover as +much of the game as possible with tests. + +For this bonus you can get at maximum 2 K₡. + +| Item | Bonus | +| ---------------------------------------------- | ----- | +| Fixing bugs from failing tests | 0.25 | +| `word_guessed` | 0.50 | +| Hidden bug | 0.50 | +| Extending tests, undetectable bugs or evil bug | 0.37 | +| Refactor | 0.38 | + +## Project + +Project consists of 2 source files - `hangman.c` and `main.c`. + +`main.c` is quite short and concise, there is nothing for you to do. + +`hangman.c` contains implementation of the game. In case you feel lost, consult +the documentation in `hangman.h` that represents an interface that can be used +for implementing the game. + +Apart from those sources this project is a bit more complicated. _Game loop_ is +realised via single encapsulated function that complicates the testing. Because +of that, there are 2 kinds of tests: + +- _Unit tests_ - that are present in `test_hangman.c` and can be run via: + + ``` + $ make check-unit + ``` + + They cover majorly functions that can be tested easily via testing framework. + +- _Functional tests_ - same as in `seminar-08` and are focused on testing the + program as whole. Basic smoke test is already included in `usage` test case. + + They can be run via: + + ``` + $ make check-functional + ``` + + When testing `hangman` function (the game loop), it is suggested to create + functional tests. + + When submitting the files for review, please leave out functional tests that + were given as a part of the assignment, so that it is easier to navigate, I + will drag the common files myself. :) + +> Whole test suite can be run via: +> +> ``` +> $ make check +> ``` + +### Summary of the gameplay + +1. Secret word gets chosen from the file that's path is given as an argument. +2. You get 8 guesses. +3. Invalid characters don't count. +4. Already guessed characters don't count, even if not included in the secret. +5. You can guess the whole word at once + - If you get it right, you won, game ends. + - If you don't get it right, you get to see the secret, game ends. +6. In case of end of input, game finishes via force. +7. In case of invalid input, no guesses are subtracted, game carries on. +8. Letters and words are not case sensitive. + +## Suggested workflow + +As we have talked about on the seminar, I suggest you to follow +_Test-Driven Development_ +in this case. + +![TDD workflow](/files/pb071/bonuses/10/tdd_lifecycle.png) + +In our current scenario we are already in the stage of refactoring and fixing the +bugs. Therefore try to follow this succession of steps: + +1. Try to reproduce the bug. +2. Create a test that proves the presence of the bug. +3. Fix the bug. + +In case you are submitting the bonus via GitLab, it is helpful to commit tests +before commiting the fixes, so that it is apparent that the bug is manifested. +Example of `git log` (notice that the first line represents latest commit): + +``` +feat: Implement fizz_buzzer +test: Add tests for fizz_buzzer +fix: Fix NULL-check in print_name +test: Add test for NULL in print_name +``` + +## Tasks + +As to your tasks, there are multiple things wrong in this project. + +1. There are 2 "bugs" that cannot be detected via tests, i.e. they are not bugs + that affect functionality of the game. + +2. There is one evil bug in `get_word`. It is not required to be fixed ;) Assign + it the lowest priority. + +3. There are some tests failing. Please try to figure it out, so you have green + tests for the rest :) + +4. We have gotten a bug report for `word_guessed`, all we got is + + > doesn't work when there are too many `a`s + + Please try to replicate the bug and create a tests, so we don't get any + regression later on. + +5. One hidden bug :) Closely non-specified, we cannot reproduce it and we were + drunk while playing the game, so we don't remember a thing. :/ + +6. Try to cover as much code via the tests as possible. We are not going to look + at the metrics, but DRY is violated a lot, so as a last task try to remove as + much of the duplicit code as possible. + + Tests should help you a lot in case there are some regressions. + +--- + +In case you wonder why there are always 3 same words in the file with words, it +is because of the `get_word` bug. It is not a bug that can be easily fixed, so +it is a not requirement at all and you can still get all points for the bonus ;) + +## Dictionary + +- [Functional tests](https://en.wikipedia.org/wiki/Functional_testing) +- [Smoke test](https://en.wikipedia.org/wiki/Smoke_testing_%28software%29) +- [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself) + +## Submitting + +In case you have any questions, feel free to reach out to me. + +--- + +Ideally submit the assignment through the merge request. Step-by-step tutorial +is present [here](../mr). For setting assignee my xlogin is `xfocko`. + +In case you do not want to experiment on GitLab, send me the source code via +email, but please prefix subject with: `[PB071/14][seminar-10]` + +Deadline for the submission of the bonus is **May 17 24:00**. diff --git a/pb071/bonuses/_category_.yaml b/pb071/bonuses/_category_.yaml new file mode 100644 index 0000000..5057f3c --- /dev/null +++ b/pb071/bonuses/_category_.yaml @@ -0,0 +1,6 @@ +label: Bonuses +position: 1 +link: + type: generated-index + description: | + Bonus assignments for Kontr Coins. diff --git a/pb071/mr.md b/pb071/mr.md new file mode 100644 index 0000000..924ab29 --- /dev/null +++ b/pb071/mr.md @@ -0,0 +1,136 @@ +--- +title: Submitting merge requests +--- + +# Submitting merge requests for review + +This tutorial aims to show you how to follow basic git workflow and submit changes +through _Merge Requests_ for review. + +The rudimentary idea behind aims for changes to be present on a separate branch +that is supposedly _merged_ into the default branch. Till then changes can be reviewed +on _Merge Request_ and additional changes may be made based on the reviews. Once +the changes satisfy requirements, the merge request is merged. + +## Tutorial + +> Use this tutorial only for bonus assignments **made by your tutors** or in case +> you need to make up for the absence. + +### Step #1 - Starting from the clean repository + +In your repository (either locally or on aisa) type `git status` and check if your +repository is clean and you are present on the main branch (`master`, `main` or +`trunk`). If you do not know what your default branch is, it is probably `master` +and you should not be on any other branch. + +Output of the command should look like this: + +``` +aisa$ git status +On branch master # Or main or trunk. +Your branch is up to date with 'origin/master'. + +nothing to commit, working tree clean +``` + +> In case you are on different branch or there are uncommitted changes, +> **do not continue!!!** Clean your repository (commit the changes or discard +> them), before you continue. + +### Step #2 - Create new branch + +In your repository write command: + +``` +aisa$ git checkout -b BRANCH +Switched to a new branch 'BRANCH' +``` + +Instead of `BRANCH` use some reasonable name for the branch. For example if you +are working on the seminar from 3rd week, name the branch `seminar-03`. + +### Step #3 - Do the assignment + +Download the skeleton for the seminar assignment, extract and program. For example +if you are working on 3rd seminar, you can do so by: + +``` +aisa$ wget https://www.fi.muni.cz/pb071/seminars/seminar-03/pb071-seminar-03.zip +aisa$ unzip pb071-seminar-03.zip +# Now you should have directory 'seminar-03'. +aisa$ rm pb071-seminar-03.zip +aisa$ cd seminar-03 +# You can work on the assignment. +``` + +### Step #4 - Commit and upload the changes to GitLab + +The same way you _add_ and _commit_ files for the homework assignments, you do for +the seminar. + +Now you can upload the changes to GitLab. `git push` is not enough, since repository +on GitLab does not know your new branch. You can solve this by adding arguments: + +``` +aisa$ git push origin BRANCH +... +remote: To create a merge request for BRANCH, visit: +remote: https://gitlab.fi.muni.cz/login/pb071/merge_requests/new?merge_request%5Bsource_branch%5D=BRANCH +... +``` + +In the output you should have a link for creating a merge request. If you see this +link, open it and skip next step. + +### Step #5 - Creating a merge request manually + +1. Open your repository on GitLab. +2. On the left panel click on _Merge Requests_. +3. Click on _New Merge Request_. +4. In _Source branch_ select `login/pb071` and `BRANCH`, which you created. +5. In _Target branch_ select `login/pb071` and your default branch you have seen + in the output of the first command. (most likely `master`) +6. Click on _Compare branches and continue_. + +### Step #6 - Set assignees + +On the page that is opened, please check at the top that you are creating merge +request **from** your new branch **to** your default branch (one of `master`, `main` +or `trunk`). + +Then in the field _Assignees_ set your tutors based on the seminar group. You can +use login for a quick look up. + +In the end click on _Submit merge request_. + +### Step #7 - Return to default branch + +Homework assignments can be submitted only from branches specified in the rules +for the course. Because of that, before you do anything else, you should switch +back to your default branch. + +First of all, same as in step #1, check that your repository is clean with `git status`. +For the sake of safety, do not continue without clean repository. Then with command +`git checkout BRANCH` switch to your default branch `BRANCH`. + +If you do not know which branch is your default, try `git branch` that outputs all branches in your repository. Default branch is typically `master`, but can +be `main` or `trunk`. + +``` +aisa$ git status +# Check if repository is clean + +# If you know, what is your default branch, you can skip next command. +aisa$ git branch +# Find the default branch in the list; should be one of the `master`, `main` or +# `trunk` and you should not have more than one of those. +# In case the list clears the terminal and you cannot see shell prompt, you can +# press `q` to quit the pager. + +aisa$ git checkout master +``` + +--- + +Adapted from: https://www.fi.muni.cz/~xlacko1/pb071/mr.html diff --git a/pb161/00-intro-pb161.md b/pb161/00-intro-pb161.md new file mode 100644 index 0000000..3264b2e --- /dev/null +++ b/pb161/00-intro-pb161.md @@ -0,0 +1,5 @@ +--- +id: pb161-intro +title: Introduction +slug: /intro +--- diff --git a/pb161/environment.md b/pb161/environment.md new file mode 100644 index 0000000..d5a0e09 --- /dev/null +++ b/pb161/environment.md @@ -0,0 +1,163 @@ +--- +title: Environment +description: | + Suggestions for setting up a local environment for C++ course. +--- + +## Required tools per OS + +### Windows + +Most likely WSL, VM or VPS. If you consider setting up either of those PITA, then +VSCode + SSH to _aisa_ might be the best option for you. + +Either of those will be linux distros, so jump to [next section](#linux). + +### Linux + +Majority (if not all) of the provided materials include makefile (contains absolute +path, so in case of linting and compiling, you need to adjust to your needs). You +basically need following list of tools: + +- `gcc` - for compiling +- `clang-tidy` - for linting (depends on distribution, might be provided with + clang itself or in separate package, e.g. `clang-tools-extra`) +- `clang-format` - for your own sanity of keeping consistent formatting +- `make` - since you are provided makefiles and it might be quickest to set up +- `valgrind` - in case you manage to create memory errors in your code + +In case of Fedora it is following set of packages: + +```sh +sudo dnf install -y clang clang-tools-extra valgrind gcc make +# If you decide to use google test: add `gtest` or `llvm-googletest` for clang +``` + +### macOS + +In case of macOS you should be able to find all of the packages in brew.sh, except +`valgrind`, not sure if you can solve with podman/docker. + +There is also an alterantive to homebrew, that is nixpkgs. + +### nix(OS) + +In case you run nixOS or linux distribution with nixpkgs or you use nixpkgs as a +replacement for homebrew on macOS. You should be fine with the following config: + +```nix +with import {}; +stdenv.mkDerivation { + name = "cppenv"; + buildInputs = [ + clang-tools + + gnumake + + gmock # used for google test + valgrind # not sure about macOS though + ]; +} +``` + +## IDEs + +Choice of the IDE is mostly up to you, you do not need to use IDE at all ;) + +I would probably recommend VSCode + appropriate extension or CLion if you are used +to the JetBrains IDEs. + +## git + +I recommend you using some basic versioning for your code, even though you submit +only the sources on _aisa_. There are specific reasons why I suggest it: + +- once you submit the sources for evaluation, there is no way of getting previous + submissions + + i.e. if you introduce new bugs between submissions, you cannot compare two of + them to pinpoint the bug, this can be easily resolved by _git tags_ + +- if you build a _commit, tag and submit_ habit, you might be able to address + some of the smaller problems in your sources even before submission; more info + in the [pre-commit section](#pre-commit) + +In case you are planning to use git branches for separating different +assignments and/or merge requests I suggest you to keep specifications and +skeletons on your default branch, since _frag_ on _aisa_ automatically downloads +everything that is not present and by that can create conflicts when switching +branches. + +Since frag creates a lot of support files (majority of them are dotfiles, i.e. +hidden files), I recommend you to use following +[gitignore](/files/pb161/environment/gitignore) configuration that should cover most of +the scenarios. + +### Reviews on merge requests + +It might be harder to resolve, explain and/or address notes from the review if you +get back your source code with notes all over the place, to help with this I offer +you reviews on merge requests in GitLab. + +It allows me to comment on your source code with an option for you to reply, so +that we can clear any misunderstandings and vague comments if they arise. + +Since I expect most of you to not require this, it might take some time for me +to implement tool that would allow it, since the reviews shall be still submitted +through _aisa_. + +### pre-commit ([link](https://pre-commit.com/)) + +Pre-commit basically allows you to "check" your code before committing. It functions +as a git hook, i.e. you want to make a commit, pre-commit checks it before-hand. + +In case of C++ there are few use-cases: + +- formatting +- linting +- building and/or running tests, in case you feel like masochist + + However this might be a challenging task to implement, since most of the tasks + are published from the beginning. + +In case of formatting and linting, there are already existing hooks (there is a +list of supported ones on the page), but there is also an option for you setting +it up yourself (it is just a matter of specifying command and files it should run +on). + +## Testing + +I have tried 2 frameworks for testing, one of them will be probably showcased in +lectures. If you have not picked one yet, you can take an inspiration from the +following. + +### catch2 + +It is quite popular, only one header-file, also might be easier to set up. + +Might feel slow to compile, this can be addressed by having one object file with +precompiled `main` for tests, e.g. + +```cpp +/* File: catch_main.cpp + * Compile it with: g++ $(CXXFLAGS) -c catch_main.cpp + * + * Once you have source file with tests, e.g. test_something.cpp, compile it in + * a similar fashion: g++ $(CXXFLAGS) -c test_something.cpp $(LDLIBS) + * + * And link them together: + * g++ catch_main.o test_something.o -o test_something + * + * Now you can run ./test_something and if you change it, you do not need to compile + * the main again. + */ +#define CATCH_CONFIG_MAIN +#include "catch.hpp" +``` + +### Google Test + +It is faster compared to catch2, even if you do not precompile the `main`. Might +be more complicated to set up, since there are multiple files (it is not one header +file). Not very user friendly on _aisa_. However can be installed through package +manager. diff --git a/sidebars.js b/sidebars.js new file mode 100644 index 0000000..6372c9d --- /dev/null +++ b/sidebars.js @@ -0,0 +1,8 @@ +// @ts-check + +/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ +const sidebars = { + autogeneratedBar: [{ type: "autogenerated", dirName: "." }], +}; + +module.exports = sidebars; diff --git a/src/components/HomepageFeatures/index.js b/src/components/HomepageFeatures/index.js new file mode 100644 index 0000000..e79c463 --- /dev/null +++ b/src/components/HomepageFeatures/index.js @@ -0,0 +1,60 @@ +import React from "react"; +import clsx from "clsx"; +import styles from "./styles.module.css"; + +const FeatureList = [ + { + title: "Content", + description: ( + <> + On this page you can find unofficial materials I have written over the + course of teaching multiple courses at the FI. + + ), + }, + { + title: "Source", + description: ( + <> + This content can be found as a source at{" "} + GitLab or{" "} + FI GitLab. + + ), + }, + { + title: "Deployment", + description: ( + <> + This content is also deployed on{" "} + aisa or{" "} + poincare. + + ), + }, +]; + +function Feature({ title, description }) { + return ( +
+
+

{title}

+

{description}

+
+
+ ); +} + +export default function HomepageFeatures() { + return ( +
+
+
+ {FeatureList.map((props, idx) => ( + + ))} +
+
+
+ ); +} diff --git a/src/components/HomepageFeatures/styles.module.css b/src/components/HomepageFeatures/styles.module.css new file mode 100644 index 0000000..b248eb2 --- /dev/null +++ b/src/components/HomepageFeatures/styles.module.css @@ -0,0 +1,11 @@ +.features { + display: flex; + align-items: center; + padding: 2rem 0; + width: 100%; +} + +.featureSvg { + height: 200px; + width: 200px; +} diff --git a/src/css/custom.css b/src/css/custom.css new file mode 100644 index 0000000..3859140 --- /dev/null +++ b/src/css/custom.css @@ -0,0 +1,30 @@ +/** + * Any CSS included here will be global. The classic template + * bundles Infima by default. Infima is a CSS framework designed to + * work well for content-centric websites. + */ + +/* You can override the default Infima variables here. */ +:root { + --ifm-color-primary: #2e8555; + --ifm-color-primary-dark: #29784c; + --ifm-color-primary-darker: #277148; + --ifm-color-primary-darkest: #205d3b; + --ifm-color-primary-light: #33925d; + --ifm-color-primary-lighter: #359962; + --ifm-color-primary-lightest: #3cad6e; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme="dark"] { + --ifm-color-primary: #25c2a0; + --ifm-color-primary-dark: #21af90; + --ifm-color-primary-darker: #1fa588; + --ifm-color-primary-darkest: #1a8870; + --ifm-color-primary-light: #29d5b0; + --ifm-color-primary-lighter: #32d8b4; + --ifm-color-primary-lightest: #4fddbf; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} diff --git a/src/pages/index.js b/src/pages/index.js new file mode 100644 index 0000000..a824832 --- /dev/null +++ b/src/pages/index.js @@ -0,0 +1,35 @@ +import React from "react"; +import clsx from "clsx"; +import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; +import Layout from "@theme/Layout"; +import HomepageFeatures from "@site/src/components/HomepageFeatures"; + +import styles from "./index.module.css"; + +function HomepageHeader() { + const { siteConfig } = useDocusaurusContext(); + return ( +
+
+

{siteConfig.title}

+

{siteConfig.tagline}

+
+
+ ); +} + +export default function Home() { + const { siteConfig } = useDocusaurusContext(); + return ( + + + +
+ +
+
+ ); +} diff --git a/src/pages/index.module.css b/src/pages/index.module.css new file mode 100644 index 0000000..9f71a5d --- /dev/null +++ b/src/pages/index.module.css @@ -0,0 +1,23 @@ +/** + * CSS files with the .module.css suffix will be treated as CSS modules + * and scoped locally. + */ + +.heroBanner { + padding: 4rem 0; + text-align: center; + position: relative; + overflow: hidden; +} + +@media screen and (max-width: 996px) { + .heroBanner { + padding: 2rem; + } +} + +.buttons { + display: flex; + align-items: center; + justify-content: center; +} diff --git a/static/.nojekyll b/static/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/static/files/ib002/bfs-tree/bfs_graph.svg b/static/files/ib002/bfs-tree/bfs_graph.svg new file mode 100644 index 0000000..ec38d6f --- /dev/null +++ b/static/files/ib002/bfs-tree/bfs_graph.svg @@ -0,0 +1,104 @@ + + + + + + +%0 + + + +a + +a + + + +c + +c + + + +a--c + + + + +e + +e + + + +a--e + + + + +i + +i + + + +c--i + + + + +b + +b + + + +c--b + + + + +j + +j + + + +e--j + + + + +d + +d + + + +i--d + + + + +h + +h + + + +b--h + + + + +d--h + + + + +h--j + + + + diff --git a/static/files/ib002/bfs-tree/bfs_graph_with_additional_edge.svg b/static/files/ib002/bfs-tree/bfs_graph_with_additional_edge.svg new file mode 100644 index 0000000..1cee56e --- /dev/null +++ b/static/files/ib002/bfs-tree/bfs_graph_with_additional_edge.svg @@ -0,0 +1,109 @@ + + + + + + +%0 + + + +a + +a + + + +c + +c + + + +a--c + + + + +e + +e + + + +a--e + + + + +i + +i + + + +c--i + + + + +b + +b + + + +c--b + + + + +j + +j + + + +e--j + + + + +h + +h + + + +e--h + + + + +d + +d + + + +i--d + + + + +b--h + + + + +h--j + + + + +d--h + + + + diff --git a/static/files/ib002/bfs-tree/bfs_tree.svg b/static/files/ib002/bfs-tree/bfs_tree.svg new file mode 100644 index 0000000..968c9ed --- /dev/null +++ b/static/files/ib002/bfs-tree/bfs_tree.svg @@ -0,0 +1,101 @@ + + + + + + +%0 + + + +a + +a + + + +c + +c + + + +a->c + + + + + +e + +e + + + +a->e + + + + + +b + +b + + + +c->b + + + + + +i + +i + + + +c->i + + + + + +j + +j + + + +e->j + + + + + +h + +h + + + +b->h + + + + + +d + +d + + + +i->d + + + + + diff --git a/static/files/ib002/bfs-tree/bfs_tree_with_additional_edge.svg b/static/files/ib002/bfs-tree/bfs_tree_with_additional_edge.svg new file mode 100644 index 0000000..eb83336 --- /dev/null +++ b/static/files/ib002/bfs-tree/bfs_tree_with_additional_edge.svg @@ -0,0 +1,101 @@ + + + + + + +%0 + + + +a + +a + + + +c + +c + + + +a->c + + + + + +e + +e + + + +a->e + + + + + +b + +b + + + +c->b + + + + + +i + +i + + + +c->i + + + + + +h + +h + + + +e->h + + + + + +j + +j + + + +e->j + + + + + +d + +d + + + +i->d + + + + + diff --git a/static/files/ib002/extend/dynlist.c b/static/files/ib002/extend/dynlist.c new file mode 100644 index 0000000..3ff4633 --- /dev/null +++ b/static/files/ib002/extend/dynlist.c @@ -0,0 +1,142 @@ +#include "dynlist.h" + +#include +#include +#include + +void dynamic_array_init(struct dynamic_array_t *arr, size_t size) +{ + if (arr == NULL) + { + return; + } + + arr->data = NULL; + arr->count = 0; + arr->capacity = 0; + arr->size = size; +} + +void dynamic_array_destroy(struct dynamic_array_t *arr) +{ + if (arr == NULL) + { + return; + } + + if (arr->data != NULL) + { + free(arr->data); + arr->data = NULL; + } + arr->count = 0; + arr->capacity = 0; +} + +void *dynamic_array_at(struct dynamic_array_t *arr, size_t index) +{ + if (arr == NULL || index >= arr->count) + { + return NULL; + } + + return arr->data + index * arr->size; +} + +void *dynamic_array_front(struct dynamic_array_t *arr) +{ + if (arr == NULL || arr->count < 1) + { + return NULL; + } + + return arr->data; +} + +void *dynamic_array_back(struct dynamic_array_t *arr) +{ + if (arr == NULL || arr->count < 1) + { + return NULL; + } + + return arr->data + (arr->count - 1) * arr->size; +} + +/** + * @brief Resize the dynamic array when needed. + * @param arr Array to be resized. + * @returns true if resizing was successful or array was not resized, + * false otherwise. + */ +static bool dynamic_array_resize(struct dynamic_array_t *arr) +{ + if (arr == NULL || arr->count < arr->capacity) + { + return true; + } + + size_t new_capacity = arr->capacity ? (arr->capacity * 2) : 16; + void *new_data = realloc(arr->data, new_capacity * arr->size); + if (new_data == NULL) + { + // failed to reallocate memory + return false; + } + + arr->data = new_data; + arr->capacity = new_capacity; + return true; +} + +bool dynamic_array_push_back(struct dynamic_array_t *arr, void *data) +{ + if (arr == NULL || data == NULL) + { + return false; + } + + if (!dynamic_array_resize(arr)) + { + // failed to reallocate memory + return false; + } + + memcpy(dynamic_array_at(arr, arr->count), data, arr->size); + arr->count++; + + return true; +} + +void dynamic_array_pop_back(struct dynamic_array_t *arr) +{ + if (arr == NULL || arr->count < 1) + { + return; + } + + arr->count--; +} + +void dynamic_array_extend(struct dynamic_array_t *arr, struct dynamic_array_t *src) +{ + if (arr == NULL || src == NULL) + { + return; + } + + for (size_t i = 0; i < src->count; i++) + { + dynamic_array_push_back(arr, dynamic_array_at(src, i)); + } +} + +void dynamic_array_clear(struct dynamic_array_t *arr) +{ + if (arr == NULL) + { + return; + } + + arr->count = 0; +} diff --git a/static/files/ib002/extend/dynlist.h b/static/files/ib002/extend/dynlist.h new file mode 100644 index 0000000..e41b046 --- /dev/null +++ b/static/files/ib002/extend/dynlist.h @@ -0,0 +1,76 @@ +#include +#include + +struct dynamic_array_t +{ + char *data; + size_t count; + size_t capacity; + size_t size; +}; + +/** + * @brief Initializes dynamic array. Sets size of single element and zeroes + * everything else. + * @param arr Array to be initialized. + * @param size Size of one element in the array. + */ +void dynamic_array_init(struct dynamic_array_t *arr, size_t size); + +/** + * @brief Destroys dynamic array. Deallocates all the memory and resets fields. + * @param arr Array to be destroyed. + */ +void dynamic_array_destroy(struct dynamic_array_t *arr); + +/** + * @brief Returns pointer to the element on the given index. + * @param arr Array containing the element. + * @param index Index of the element. + * @returns Pointer to the element, NULL if index is out of bounds. + */ +void *dynamic_array_at(struct dynamic_array_t *arr, size_t index); + +/** + * @brief Returns pointer to the first element of the array. + * @param arr Array containing the element. + * @returns Pointer to the first element, NULL if no elements are + * present. + */ +void *dynamic_array_front(struct dynamic_array_t *arr); + +/** + * @brief Returns pointer to the last element of the array. + * @param arr Array containing the element. + * @returns Pointer to the last element, NULL if no elements are + * present. + */ +void *dynamic_array_back(struct dynamic_array_t *arr); + +/** + * @brief Adds element to the end of the array. + * @param arr Array where the element is to be added. + * @param data Pointer to the data, that are to be copied into the array. + * @returns true if element added successfully, false + * otherwise. + */ +bool dynamic_array_push_back(struct dynamic_array_t *arr, void *data); + +/** + * @brief Removes last element from the array. + * @param arr Array from which the last element is to be removed. + */ +void dynamic_array_pop_back(struct dynamic_array_t *arr); + +/** + * @brief Extends array with the elements from another array. + * @param arr Array to be extended. + * @param src Array from which the elements are copied. + */ +void dynamic_array_extend(struct dynamic_array_t *arr, struct dynamic_array_t *src); + +/** + * @brief Clears out the array. + * @param arr Array to be cleared. + */ +void dynamic_array_clear(struct dynamic_array_t *arr); diff --git a/static/files/ib002/extend/rendered.svg b/static/files/ib002/extend/rendered.svg new file mode 100644 index 0000000..f79127a --- /dev/null +++ b/static/files/ib002/extend/rendered.svg @@ -0,0 +1,192 @@ + + + + + + +G + + + +a_node + +1 + +2 + +3 + +4 + +5 + +6 + +7 + +8 + +9 + + + +b_node + +1 + +2 + +3 + + + +a_node->b_node + + +B + + + +c_node + +4 + +5 + +6 + + + +a_node->c_node + + +C + + + +d_node + +7 + +8 + +9 + + + +a_node->d_node + + +D + + + +1 + +1 + + + +b_node->1 + + + + + +2 + +2 + + + +b_node->2 + + + + + +3 + +3 + + + +b_node->3 + + + + + +4 + +4 + + + +c_node->4 + + + + + +5 + +5 + + + +c_node->5 + + + + + +6 + +6 + + + +c_node->6 + + + + + +7 + +7 + + + +d_node->7 + + + + + +8 + +8 + + + +d_node->8 + + + + + +9 + +9 + + + +d_node->9 + + + + + diff --git a/static/files/ib002/iterative-and-iterators/.editorconfig b/static/files/ib002/iterative-and-iterators/.editorconfig new file mode 100644 index 0000000..11f2d95 --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/.editorconfig @@ -0,0 +1,206 @@ +# Remove the line below if you want to inherit .editorconfig settings from higher directories +root = true + +# C# files +[*.cs] + +#### Core EditorConfig Options #### + +# Indentation and spacing +indent_size = 4 +indent_style = space +tab_width = 4 + +# New line preferences +end_of_line = lf +insert_final_newline = true + +#### .NET Coding Conventions #### + +# Organize usings +dotnet_separate_import_directive_groups = false +dotnet_sort_system_directives_first = false +file_header_template = unset + +# this. and Me. preferences +dotnet_style_qualification_for_event = false:silent +dotnet_style_qualification_for_field = false:silent +dotnet_style_qualification_for_method = false:silent +dotnet_style_qualification_for_property = false:silent + +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent + +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent + +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent + +# Expression-level preferences +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_object_initializer = true:suggestion +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_prefer_compound_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_simplified_interpolation = true:suggestion + +# Field preferences +dotnet_style_readonly_field = true:suggestion + +# Parameter preferences +dotnet_code_quality_unused_parameters = all:suggestion + +# Suppression preferences +dotnet_remove_unnecessary_suppression_exclusions = none + +#### C# Coding Conventions #### + +# var preferences +csharp_style_var_elsewhere = false:silent +csharp_style_var_for_built_in_types = false:silent +csharp_style_var_when_type_is_apparent = false:silent + +# Expression-bodied members +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent + +# Pattern matching preferences +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_prefer_not_pattern = true:suggestion +csharp_style_prefer_pattern_matching = true:silent +csharp_style_prefer_switch_expression = true:suggestion + +# Null-checking preferences +csharp_style_conditional_delegate_call = true:suggestion + +# Modifier preferences +csharp_prefer_static_local_function = true:suggestion +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:silent + +# Code-block preferences +csharp_prefer_braces = true:silent +csharp_prefer_simple_using_statement = true:suggestion + +# Expression-level preferences +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +csharp_style_pattern_local_over_anonymous_function = true:suggestion +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +csharp_style_throw_expression = true:suggestion +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:silent + +# 'using' directive preferences +csharp_using_directive_placement = inside_namespace:silent + +#### C# Formatting Rules #### + +# New line preferences +csharp_new_line_before_catch = false +csharp_new_line_before_else = false +csharp_new_line_before_finally = false +csharp_new_line_before_members_in_anonymous_types = false +csharp_new_line_before_members_in_object_initializers = false +csharp_new_line_before_open_brace = none +csharp_new_line_between_query_expression_clauses = true + +# Indentation preferences +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_labels = one_less_than_current +csharp_indent_switch_labels = true + +# Space preferences +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_between_square_brackets = false + +# Wrapping preferences +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true + +#### Naming styles #### + +# Naming rules + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# Symbol specifications + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.interface.required_modifiers = + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.types.required_modifiers = + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected +dotnet_naming_symbols.non_field_members.required_modifiers = + +# Naming styles + +dotnet_naming_style.pascal_case.required_prefix = +dotnet_naming_style.pascal_case.required_suffix = +dotnet_naming_style.pascal_case.word_separator = +dotnet_naming_style.pascal_case.capitalization = pascal_case + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = +dotnet_naming_style.begins_with_i.word_separator = +dotnet_naming_style.begins_with_i.capitalization = pascal_case diff --git a/static/files/ib002/iterative-and-iterators/.gitignore b/static/files/ib002/iterative-and-iterators/.gitignore new file mode 100644 index 0000000..8bf1b90 --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/.gitignore @@ -0,0 +1,448 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# Tye +.tye/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*[.json, .xml, .info] + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# Ionide - VsCode extension for F# Support +.ionide/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +## +## Visual studio for Mac +## + + +# globs +Makefile.in +*.userprefs +*.usertasks +config.make +config.status +aclocal.m4 +install-sh +autom4te.cache/ +*.tar.gz +tarballs/ +test-results/ + +# Mac bundle stuff +*.dmg +*.app + +# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# JetBrains Rider +.idea/ +*.sln.iml + +## +## Visual Studio Code +## +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json diff --git a/static/files/ib002/iterative-and-iterators/graphs.csproj b/static/files/ib002/iterative-and-iterators/graphs.csproj new file mode 100644 index 0000000..ce937de --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/graphs.csproj @@ -0,0 +1,10 @@ + + + + Exe + net5.0 + + enable + + + diff --git a/static/files/ib002/iterative-and-iterators/src/BFS.cs b/static/files/ib002/iterative-and-iterators/src/BFS.cs new file mode 100644 index 0000000..68901d9 --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/src/BFS.cs @@ -0,0 +1,66 @@ +using System.Collections.Generic; + +namespace graphs { + class BFS where T : notnull { + private Graph graph; + + private Dictionary Distance = new Dictionary(); + private Dictionary Parent = new Dictionary(); + private Dictionary State = new Dictionary(); + + public BFS(Graph graph) { + this.graph = graph; + } + + public BFS Run() { + foreach (var vertex in graph.Vertices) { + if (ColorOf(vertex) == Color.White) { + RunFrom(vertex); + } + } + + return this; + } + + public BFS RunFrom(T start) { + State[start] = Color.Gray; + Distance[start] = 0; + Parent[start] = default(T); + + var queue = new Queue(); + queue.Enqueue(start); + + while (queue.Count > 0) { + var u = queue.Dequeue(); + + for (var iterator = graph.GetEdgesFrom(u); iterator.MoveNext();) { + var v = iterator.Current; + + if (GetOrDefault(State, v, Color.White) == Color.White) { + State[v] = Color.Gray; + Distance[v] = Distance[u] + 1; + Parent[v] = u; + + queue.Enqueue(v); + } + } + + State[u] = Color.Black; + } + + return this; + } + + private static V GetOrDefault(Dictionary flags, U u, V defaultValue) + where U : notnull { + if (flags.TryGetValue(u, out var flag)) { + return flag; + } + return defaultValue; + } + + public int DistanceTo(T u) => GetOrDefault(Distance, u, 0); + public T? ParentOf(T u) => GetOrDefault(Parent, u, default(T)); + public Color ColorOf(T u) => GetOrDefault(State, u, Color.White); + } +} diff --git a/static/files/ib002/iterative-and-iterators/src/DFS.cs b/static/files/ib002/iterative-and-iterators/src/DFS.cs new file mode 100644 index 0000000..626eba4 --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/src/DFS.cs @@ -0,0 +1,68 @@ +using System.Collections.Generic; + +namespace graphs { + class DFS where T : notnull { + private Graph graph; + + private int time; + private Dictionary Discovered = new Dictionary(); + private Dictionary Finished = new Dictionary(); + private Dictionary State = new Dictionary(); + + public DFS(Graph graph) { + this.graph = graph; + } + + public DFS Run() { + time = 0; + + foreach (var vertex in graph.Vertices) { + if (ColorOf(vertex) == Color.White) { + RunFrom(vertex, false); + } + } + + return this; + } + + public DFS RunFrom(T start, bool reset = true) { + var path = new Stack<(T, IEnumerator)>(); + + if (reset) { + time = 0; + } + + (Discovered[start], State[start]) = (++time, Color.Gray); + path.Push((start, graph.GetEdgesFrom(start))); + + while (path.Count > 0) { + var (lastVertex, successors) = path.Peek(); + + if (!successors.MoveNext()) { + path.Pop(); + (Finished[lastVertex], State[lastVertex]) = (++time, Color.Black); + } else if (ColorOf(successors.Current) == Color.White) { + var nextVertex = successors.Current; + + (Discovered[nextVertex], State[nextVertex]) = (++time, Color.Gray); + path.Push((nextVertex, graph.GetEdgesFrom(nextVertex))); + } + } + + return this; + } + + private static V GetOrDefault(Dictionary flags, U u, V defaultValue) + where U : notnull + where V : notnull { + if (flags.TryGetValue(u, out var flag)) { + return flag; + } + return defaultValue; + } + + public int DiscoveredAt(T u) => GetOrDefault(Discovered, u, 0); + public int FinishedAt(T u) => GetOrDefault(Finished, u, 0); + public Color ColorOf(T u) => GetOrDefault(State, u, Color.White); + } +} diff --git a/static/files/ib002/iterative-and-iterators/src/Graph.cs b/static/files/ib002/iterative-and-iterators/src/Graph.cs new file mode 100644 index 0000000..220779c --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/src/Graph.cs @@ -0,0 +1,44 @@ +using System.Collections.Generic; +using System.Linq; + +namespace graphs { + enum Color { + White, Gray, Black + } + + class Graph where T : notnull { + private SortedSet vertices = new SortedSet(); + private SortedDictionary> edges = new SortedDictionary>(); + + public SortedSet Vertices { + get => vertices; + } + + public void AddVertex(T u) { + vertices.Add(u); + edges.Add(u, new SortedSet()); + } + + public void AddEdge(T u, T v) { + if (edges.TryGetValue(u, out var edgesFromU)) { + edgesFromU.Add(v); + } + } + + public bool HasEdge(T u, T v) { + if (edges.TryGetValue(u, out var edgesFromU)) { + return edgesFromU.Contains(v); + } + + return false; + } + + public IEnumerator GetEdgesFrom(T u) { + if (edges.TryGetValue(u, out var edgesFromU)) { + return edgesFromU.GetEnumerator(); + } + + return Enumerable.Empty().GetEnumerator(); + } + } +} diff --git a/static/files/ib002/iterative-and-iterators/src/Program.cs b/static/files/ib002/iterative-and-iterators/src/Program.cs new file mode 100644 index 0000000..64790fd --- /dev/null +++ b/static/files/ib002/iterative-and-iterators/src/Program.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace graphs { + class Program { + static Graph CreateExampleGraph() { + var vertices = new List() { + "s", "q", "t", "y", "r", "v", "w", "x", "z", "u" + }; + + var graph = new Graph(); + + foreach (var vertex in vertices) { + graph.AddVertex(vertex); + } + + graph.AddEdge("s", "v"); + graph.AddEdge("q", "s"); + graph.AddEdge("q", "w"); + graph.AddEdge("q", "t"); + graph.AddEdge("t", "y"); + graph.AddEdge("t", "x"); + graph.AddEdge("y", "q"); + graph.AddEdge("r", "y"); + graph.AddEdge("r", "u"); + graph.AddEdge("v", "w"); + graph.AddEdge("w", "s"); + graph.AddEdge("x", "w"); + graph.AddEdge("x", "z"); + graph.AddEdge("z", "x"); + graph.AddEdge("u", "y"); + + return graph; + } + + static void Main(string[] args) { + var graph = CreateExampleGraph(); + + var dfsTraversal = new DFS(graph).Run(); + foreach (var vertex in graph.Vertices) { + Console.WriteLine($"{vertex}(d: {dfsTraversal.DiscoveredAt(vertex)}, f: {dfsTraversal.FinishedAt(vertex)})"); + } + } + } +} diff --git a/static/files/ib002/postcondition-ambiguity/test_sort.py b/static/files/ib002/postcondition-ambiguity/test_sort.py new file mode 100644 index 0000000..c616f8f --- /dev/null +++ b/static/files/ib002/postcondition-ambiguity/test_sort.py @@ -0,0 +1,139 @@ +from hypothesis import given, settings +from hypothesis.strategies import integers, lists +import pytest + +import itertools + + +def compare_by_value(pair): + """ + Takes a pair from enumerate in form: `index, value` and returns the value + + Args: + pair (Tuple[int, T]): Index and element from the iterator at the index. + + Returns: + Element from the pair. + """ + index, value = pair + return value + + +def maximum(arr, n): + """ + Finds index of maximum element of first n elements in list. + + Args: + arr (List): List of values. + n (int): Upper bound of index where to search for maximum (inclusive). + + Returns: + Index of a maximum element in `arr[:n]`. + """ + first_n_elements = itertools.islice(enumerate(arr), n) + index, value = max(first_n_elements, key=compare_by_value) + return index + + +# Precondition: n = |A| +# Loop invariant: +# A[i + 1 : n] is sorted AND +# all elements of A[i + 1 : n] are bigger or equal to the other elements +# Postcondition: A is sorted +def select_sort(arr, n): + """ + Sorts list `arr` using select sort algorithm. + + Args: + arr (List): List of values. + n (int): Size of the list. + + Returns: + Sorted list `arr`. + """ + assert n == len(arr) + + check_loop_invariant(arr, n, n) + for i in reversed(range(1, n)): + j = maximum(arr, i + 1) + arr[i], arr[j] = arr[j], arr[i] + + check_loop_invariant(arr, n, i) + + return arr + + +def broken_select_sort(arr, n): + assert n == len(arr) + + if not arr: + return + + max_value = max(arr) + + check_loop_invariant(arr, n, n) + for i in reversed(range(n)): + arr[i] = max_value + i + + check_loop_invariant(arr, n, i) + + return arr + + +def check_loop_invariant(arr, n, i): + # A[i + 1 : n] is sorted + for x, y in zip(itertools.islice(arr, i + 1, n), itertools.islice(arr, i + 2, n)): + assert x <= y + + # all elements of A[i + 1 : n] are bigger or equal to the other elements + if i + 1 >= n: + # in case there are no elements + return + + # otherwise, since the "tail" is sorted, we can assume that it is enough to + # check the other elements to the smallest value of the tail + smallest = arr[i + 1] + for element in itertools.islice(arr, i + 1): + assert smallest >= element + + +def check_vague_postcondition(original_arr, arr): + if not arr: + return + + # check ordering + for x, y in zip(arr, itertools.islice(arr, 1, len(arr))): + assert x <= y + + +def check_postcondition(original_arr, arr): + if not arr: + return + + # check ordering + for x, y in zip(arr, itertools.islice(arr, 1, len(arr))): + assert x <= y + + # get counts from original list + original_counts = {} + for value in original_arr: + original_counts[value] = 1 + original_counts.get(value, 0) + + # get counts from resulting list + counts = {} + for value in arr: + counts[value] = 1 + counts.get(value, 0) + + # if arr is permutation of original_arr then all counts must be the same + assert counts == original_counts + + +@given(lists(integers())) +@settings(max_examples=1000) +@pytest.mark.parametrize( + "postcondition", [check_vague_postcondition, check_postcondition] +) +@pytest.mark.parametrize("sorting_function", [select_sort, broken_select_sort]) +def test_select_sort(sorting_function, postcondition, numbers): + result = sorting_function(numbers[:], len(numbers)) + postcondition(numbers, result) diff --git a/static/files/ib015/.gitkeep b/static/files/ib015/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/static/files/ib110/.gitkeep b/static/files/ib110/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/static/files/pb071/bonuses/03/main.c b/static/files/pb071/bonuses/03/main.c new file mode 100644 index 0000000..921ab65 --- /dev/null +++ b/static/files/pb071/bonuses/03/main.c @@ -0,0 +1,264 @@ +#include +#include +#include +#include +#include + +/* If you want to see arrays before and after sorting, uncomment next line */ +// #define DEBUG_OUTPUT + +/** + * @brief Swaps two elements at given addresses of given size. + * @param left Pointer to the first element. + * @param right Pointer to the second element. + * @param size Size of the memory one element takes. + */ +void swap(void *left, void *right, size_t size) +{ + /* TODO */ +} + +/** + * @brief Get index of biggest element in the array. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + * @param size Size of one element in the array. + * @param comp Comparator that is used to decide ordering of the elements. + * @returns Index of the biggest element given the ordering. + */ +size_t maximum(void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *)) +{ + /* Pseudocode: + * =========== + * max_index <- 0 + * FOR i <- 1 TO n - 1 DO + * IF A[i] > A[max_index] THEN + * max_index <- i + * FI + * OD + * RETURN max_index + */ + /* TODO */ + return 0; +} + +/** + * @brief Sort array in-situ using select-sort. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + * @param size Size of one element in the array. + * @param comp Comparator that is used to decide ordering of the elements. + */ +void select_sort(void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *)) +{ + /* Pseudocode: + * =========== + * FOR i <- n - 1 DOWNTO 1 DO + * j <- MAXIMUM(A, i + 1) + * SWAP(A, i, j) + * OD + */ + /* TODO */ +} + +/** + * @brief Compares two integers that are given through generic pointers. + * @param x Pointer to the integer x. + * @param y Pointer to the integer y. + * @returns 0 if x == y, <0 if x < y, >0 otherwise. + */ +static int int_comparator(const void *x, const void *y) +{ + /* TODO */ + return 1; +} + +/** + * @brief Compares two characters by ASCII value. + * @param x Pointer to the character x. + * @param y Pointer to the character y. + * @returns 0 if x == y, <0 if x < y, >0 otherwise. + */ +static int char_comparator(const void *x, const void *y) +{ + char x_value = *(const char *) x; + char y_value = *(const char *) y; + return x_value - y_value; +} + +/** + * @brief Compares two characters by ASCII value in a reversed order. + * @param x Pointer to the character x. + * @param y Pointer to the character y. + * @returns 0 if x == y, >0 if x < y, <0 otherwise. + */ +static int char_reversed_comparator(const void *x, const void *y) +{ + char x_value = *(const char *) x; + char y_value = *(const char *) y; + return y_value - x_value; +} + +// #pragma region TESTS +/** + * @brief Check if array is sorted. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + * @param size Size of one element in the array. + * @param comp Comparator that is used to decide ordering of the elements. + */ +static void check_if_sorted(void *ptr, size_t count, size_t size, int (*comp)(const void *, const void *)) +{ + char *left = ptr; + char *right = (char *) ptr + size; + + for (size_t i = 0; i < count - 1; i++) { + assert(comp(left, right) <= 0); + + left += size; + right += size; + } +} + +#ifdef DEBUG_OUTPUT +/** + * @brief Print numbers from an array. + * @param array Pointer to the first element of the array. + * @param count Count of the elements in the array. + */ +static void print_numbers(int *array, size_t count) +{ + for (size_t i = 0; i < count; i++) { + printf(" %d", array[i]); + } +} +#endif + +/** + * @brief Run some basic tests on integer arrays. + */ +static void check_int_arrays() +{ + /* You are free to add any other examples you like, in case you want to add + * array with more than 10 elements, please adjust the size. + */ + + size_t examples_count = 5; + int examples[][10] = { + { -1, 50, -10, 20, 30, 0, -100 }, + { -100, 0, 30, 20, -10, 50, -1 }, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, + { -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 }, + { 0, 0, 0, 0, 0, 0, 0, 0 } + }; + + printf("[TEST] Integer arrays\n"); + for (size_t i = 0; i < examples_count; i++) { + size_t count = sizeof(examples[i]) / sizeof(int); + +#ifdef DEBUG_OUTPUT + printf("Before sorting:"); + print_numbers(examples[i], count); + putchar('\n'); +#endif + + select_sort(examples[i], count, sizeof(int), int_comparator); + +#ifdef DEBUG_OUTPUT + printf("After sorting:"); + print_numbers(examples[i], count); + printf("\n\n"); +#endif + + check_if_sorted(examples[i], count, sizeof(int), int_comparator); + } + printf("[PASS] Tests passed.\n\n"); +} + +/** + * @brief Run some basic tests on strings. Also with reversed ordering. + */ +static void check_char_arrays() +{ +#define MAX_SIZE 20 + /* You are free to add any other examples you like, in case you want to add + * strings with more than 10 characters, please adjust the size. + * mind the terminator ;) + */ + + const size_t examples_count = 5; + char examples[][MAX_SIZE] = { + "Hello World!", + "hi", + "aloha", + "LET US SORT", + "LeT uS sOrT" + }; + + printf("[TEST] Char arrays\n"); + for (size_t i = 0; i < examples_count; i++) { + size_t count = strlen(examples[i]); + + char temp_array[MAX_SIZE]; + strncpy(temp_array, examples[i], MAX_SIZE); + select_sort(temp_array, count, 1, char_comparator); + +#ifdef DEBUG_OUTPUT + printf("Before sorting: \"%s\"\n", examples[i]); + printf("After sorting: \"%s\"\n\n", temp_array); +#endif + + check_if_sorted(temp_array, count, 1, char_comparator); + } + printf("[PASS] Tests passed.\n\n"); + + printf("[TEST] Char arrays reversed\n"); + for (size_t i = 0; i < examples_count; i++) { + size_t count = strlen(examples[i]); + + char temp_array[MAX_SIZE]; + strncpy(temp_array, examples[i], MAX_SIZE); + select_sort(temp_array, count, 1, char_reversed_comparator); + +#ifdef DEBUG_OUTPUT + printf("Before sorting: \"%s\"\n", examples[i]); + printf("After sorting: \"%s\"\n\n", temp_array); +#endif + + check_if_sorted(temp_array, count, 1, char_reversed_comparator); + } + printf("[PASS] Tests passed.\n\n"); +#undef MAX_SIZE +} + +static void annotate(const char *description, bool result) +{ + printf("[TEST] %s\n", description); + assert(result); + printf("[PASS] Test passed.\n\n"); +} + +static void check_int_comparator() +{ + int a = 5, b = -10, c = -10; + + annotate("Test comparator for: a > b", int_comparator(&a, &b) > 0); + annotate("Test comparator for: b < a", int_comparator(&b, &a) < 0); + annotate("Test comparator for: b = c", int_comparator(&b, &c) == 0); + annotate("Test comparator for: a = a", int_comparator(&a, &a) == 0); + annotate("Test comparator for: b = b", int_comparator(&b, &b) == 0); + annotate("Test comparator for: c = c", int_comparator(&c, &c) == 0); +} +// #pragma endregion TESTS + +int main(void) +{ + /* Neither of those tests check for bad behaviour, like overwriting array + * with elements satisfying ordering. **I** check those :scheming: + */ + check_int_comparator(); + check_int_arrays(); + check_char_arrays(); + + return 0; +} diff --git a/static/files/pb071/bonuses/03/main_light.c b/static/files/pb071/bonuses/03/main_light.c new file mode 100644 index 0000000..c92c0dc --- /dev/null +++ b/static/files/pb071/bonuses/03/main_light.c @@ -0,0 +1,141 @@ +#include +#include +#include +#include + +/* If you want to see arrays before and after sorting, uncomment next line */ +// #define DEBUG_OUTPUT + +/** + * @brief Swaps two elements at given addresses. + * @param left Pointer to the first element. + * @param right Pointer to the second element. + */ +void swap(int *left, int *right) +{ + /* TODO */ +} + +/** + * @brief Get index of biggest element in the array. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + * @returns Index of the biggest element given the ordering. + */ +size_t maximum(int *ptr, size_t count) +{ + /* Pseudocode: + * =========== + * max_index <- 0 + * FOR i <- 1 TO n - 1 DO + * IF A[i] > A[max_index] THEN + * max_index <- i + * FI + * OD + * RETURN max_index + */ + /* TODO */ + return 0; +} + +/** + * @brief Sort array in-situ using select-sort. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + */ +void select_sort(int *ptr, size_t count) +{ + /* Pseudocode: + * =========== + * FOR i <- n - 1 DOWNTO 1 DO + * j <- MAXIMUM(A, i + 1) + * SWAP(A, i, j) + * OD + */ + /* TODO */ +} + +// #pragma region TESTS +/** + * @brief Check if array is sorted. + * @param ptr Pointer to the first element of the array. + * @param count Count of the elements in the array. + */ +static void check_if_sorted(int *ptr, size_t count) +{ + int *left = ptr; + int *right = ptr + 1; + + for (size_t i = 0; i < count - 1; i++) { + assert(*left <= *right); + + left++; + right++; + } +} + +#ifdef DEBUG_OUTPUT +/** + * @brief Print numbers from an array. + * @param array Pointer to the first element of the array. + * @param count Count of the elements in the array. + */ +static void print_numbers(int *array, size_t count) +{ + for (size_t i = 0; i < count; i++) { + printf(" %d", array[i]); + } +} +#endif + +/** + * @brief Run some basic tests on integer arrays. + */ +static void check_int_arrays() +{ + /* You are free to add any other examples you like, in case you want to add + * array with more than 10 elements, please adjust the size. + */ + + size_t examples_count = 5; + int examples[][10] = { + { -1, 50, -10, 20, 30, 0, -100 }, + { -100, 0, 30, 20, -10, 50, -1 }, + { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, + { -1, -2, -3, -4, -5, -6, -7, -8, -9, -10 }, + { 0, 0, 0, 0, 0, 0, 0, 0 } + }; + + printf("[TEST] Integer arrays\n"); + for (size_t i = 0; i < examples_count; i++) { + size_t count = sizeof(examples[i]) / sizeof(int); + +#ifdef DEBUG_OUTPUT + printf("Before sorting:"); + print_numbers(examples[i], count); + putchar('\n'); +#endif + + select_sort(examples[i], count); + +#ifdef DEBUG_OUTPUT + printf("After sorting:"); + print_numbers(examples[i], count); + printf("\n\n"); +#endif + + check_if_sorted(examples[i], count); + } + printf("[PASS] Tests passed.\n\n"); +} +// #pragma endregion TESTS + +int main(void) +{ + /* Neither of those tests check for bad behaviour, like overwriting array + * with elements satisfying ordering. **I** check those :scheming: + */ + check_int_arrays(); + + return 0; +} diff --git a/static/files/pb071/bonuses/03/makefile b/static/files/pb071/bonuses/03/makefile new file mode 100644 index 0000000..c37d550 --- /dev/null +++ b/static/files/pb071/bonuses/03/makefile @@ -0,0 +1,12 @@ +CC=gcc +CFLAGS=-std=c99 -Wall -Wextra -Werror -Wpedantic + +main: + $(CC) $(CFLAGS) main.c -o main + +main_light: + $(CC) $(CFLAGS) main_light.c -o main_light + +check: main main_light + valgrind ./main + valgrind ./main_light diff --git a/static/files/pb071/bonuses/04/CMakeLists.txt b/static/files/pb071/bonuses/04/CMakeLists.txt new file mode 100644 index 0000000..d3acc0a --- /dev/null +++ b/static/files/pb071/bonuses/04/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.0) + +# Project configuration +project(seminar04-bonus-maze) +set(SOURCES maze.h maze.c) +set(EXECUTABLE maze) + +# Executable +add_executable(maze ${SOURCES} main.c) +add_executable(test_maze ${SOURCES} cut.h test_maze.c) + +# Configure compiler warnings +if (CMAKE_C_COMPILER_ID MATCHES Clang OR ${CMAKE_C_COMPILER_ID} STREQUAL GNU) + # using regular Clang, AppleClang or GCC + # Strongly suggested: neable -Werror + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 -Wall -Wextra -pedantic") +elseif (${CMAKE_C_COMPILER_ID} STREQUAL MSVC) + # using Visual Studio C++ + target_compile_definitions(${EXECUTABLE} PRIVATE _CRT_SECURE_NO_DEPRECATE) + set(CMAKE_CXX_FLAGS "/permissive- /W4 /EHsc") +endif() + +if(MINGW) + target_compile_definitions(${EXECUTABLE} PRIVATE __USE_MINGW_ANSI_STDIO=1) +endif() diff --git a/static/files/pb071/bonuses/04/main.c b/static/files/pb071/bonuses/04/main.c new file mode 100644 index 0000000..0374aae --- /dev/null +++ b/static/files/pb071/bonuses/04/main.c @@ -0,0 +1,8 @@ +#include "maze.h" + +#include + +int main(void) +{ + return 0; +} diff --git a/static/files/pb071/bonuses/04/maze.c b/static/files/pb071/bonuses/04/maze.c new file mode 100644 index 0000000..e216337 --- /dev/null +++ b/static/files/pb071/bonuses/04/maze.c @@ -0,0 +1,84 @@ +#include "maze.h" + +#include +#include +#include + +/** + * @brief Checks if pointer points inside the memory specified by upper and lower + * bound. + * @param first Start of the allocated memory. + * @param last First address that is not included in the allocated memory. + * @param pos Pointer to memory. + * @returns true if pos points to the memory [first, last), + * false otherwise. + */ +static bool within_bounds(const char *first, const char *last, const char *pos) +{ + /* TODO */ +} + +/** + * @brief Sets 2D coordinates of the pointer. + * @param map Start of the 2D memory. + * @param position Pointer to the map. + * @param width Width of one row of the map. + * @param row Output variable where the row is set. + * @param col Output variable where the column is set. + */ +static void set_coordinates(const char *map, char *position, size_t width, size_t *row, size_t *col) +{ + /* TODO */ +} + +/** + * @brief Checks if indices are within bounds of the 2D map. + * @param width Width of the map. + * @param height Height of the map. + * @param row Row to be checked. + * @param col Column to be checked. + * @returns true if row,col are within bounds of the map,.false + * otherwise. + */ +static bool within_bounds_by_index(size_t width, size_t height, size_t row, size_t col) +{ + /* TODO */ +} + +void print_maze(const char *map, char *position, char direction, size_t width, size_t height) +{ + printf("Maze:\n"); + for (size_t row = 0; row < height; row++) { + for (size_t col = 0; col < width; col++) { + const char *current = &map[row * width + col]; + + if (current == position) { + switch (direction) { + case '^': + putchar('N'); + break; + case 'v': + putchar('S'); + break; + case '>': + putchar('E'); + break; + case '<': + putchar('W'); + break; + } + continue; + } + + putchar(*current); + } + putchar('\n'); + } + putchar('\n'); +} + +enum end_state_t walk(const char *map, char *position, char direction, size_t width, size_t height) +{ + /* TODO */ + return NONE; +} diff --git a/static/files/pb071/bonuses/04/maze.h b/static/files/pb071/bonuses/04/maze.h new file mode 100644 index 0000000..bf9f42e --- /dev/null +++ b/static/files/pb071/bonuses/04/maze.h @@ -0,0 +1,33 @@ +#include + +enum end_state_t +{ + NONE, + FOUND_KEY, + FOUND_TREASURE, + OUT_OF_BOUNDS, + INFINITE_LOOP, +}; + +/** + * @brief Prints maze and the robot within it. + * @param map Map of the maze. + * @param position Current position of the robot. + * @param direction Direction the robot is facing, one of "^v<>". + * @param width Width of the map. + * @param height Height of the map. + */ +void print_maze(const char *map, char *position, char direction, size_t width, size_t height); + +/** + * @brief Get end state of the robot after his walk. + * @param map Map of the maze. + * @param position Initial position of the robot in the maze. + * @param direction Direction the robot is facing at the beginning. You can assume + * correctness of this value. + * @param width Width of the maze. You can assume correctness of this value. + * @param height Height of the maze. You can assume correctness of this value. + * @returns End state of the robot after his walk is finished or has been terminated + * manually. + */ +enum end_state_t walk(const char *map, char *position, char direction, size_t width, size_t height); diff --git a/static/files/pb071/bonuses/04/test_maze.c b/static/files/pb071/bonuses/04/test_maze.c new file mode 100644 index 0000000..6a4ff4f --- /dev/null +++ b/static/files/pb071/bonuses/04/test_maze.c @@ -0,0 +1,246 @@ +#include "maze.h" + +#define CUT_MAIN +#include "cut.h" + +static void check_result(char *map, size_t position, char direction, size_t width, size_t height, enum end_state_t expected) +{ + enum end_state_t state = walk(map, &map[position], direction, width, height); + ASSERT(state == expected); +} + +TEST(basic) +{ + SUBTEST(spawns_on_treasure) + { + check_result(("T." + ".."), + 0, + '>', + 2, + 2, + FOUND_TREASURE); + } + SUBTEST(spawns_on_key) + { + check_result(("K." + ".."), + 0, + '^', + 2, + 2, + FOUND_KEY); + } + SUBTEST(spawns_on_treasure_in_middle) + { + check_result(("..." + ".T." + "..."), + 4, + 'v', + 3, + 3, + FOUND_TREASURE); + } +} + +TEST(some_walking) +{ + SUBTEST(straight_up) + { + check_result((".T." + "..." + "..."), + 7, + '^', + 3, + 3, + FOUND_TREASURE); + } + SUBTEST(down) + { + check_result(("..........................T"), 7, 'v', 1, 27, FOUND_TREASURE); + } + SUBTEST(to_right) + { + check_result(("..........................K"), 2, '>', 27, 1, FOUND_KEY); + } + SUBTEST(to_left) + { + check_result(("K.........................."), 15, '<', 27, 1, FOUND_KEY); + } +} + +TEST(follows_directions) +{ + SUBTEST(basic) + { + check_result((">..v" + "...." + "...K" + "^..<"), + 12, + '>', + 4, + 4, + FOUND_KEY); + } + SUBTEST(no_way_to_avoid) + { + const char *directions = "<>^v"; + + for (size_t row = 0; row < 5; row++) { + for (size_t col = 0; col < 5; col++) { + for (size_t dir = 0; dir < 4; dir++) { + check_result((">>>>v" + "^>>vv" + "^^T.." + "^KTK" + ".TvT" + "...<"), + 1, + '>', + 4, + 4, + OUT_OF_BOUNDS); + } + SUBTEST(to_up) + { + check_result((".>.." + "^KTK" + ".TvT" + "...<"), + 4, + '>', + 4, + 4, + OUT_OF_BOUNDS); + } + SUBTEST(to_down) + { + check_result((".>.." + "^KTK" + ".TvT" + "...<"), + 10, + '>', + 4, + 4, + OUT_OF_BOUNDS); + } + SUBTEST(to_left) + { + check_result((".>.." + "^KTK" + ".TvT" + "...<"), + 15, + '>', + 4, + 4, + OUT_OF_BOUNDS); + } +} + +TEST(mean) +{ + SUBTEST(out_of_bounds_at_the_beginning) + { + check_result((".." + ".."), + 4, + 'v', + 2, + 2, + OUT_OF_BOUNDS); + check_result((".." + ".."), + 5, + 'v', + 2, + 2, + OUT_OF_BOUNDS); + check_result((".." + ".."), + (size_t) -1, + 'v', + 2, + 2, + OUT_OF_BOUNDS); + check_result((">T<" + "..." + "^.^"), + 10, + '^', + 3, + 3, + OUT_OF_BOUNDS); + } +} + +TEST(infinite_bonus) +{ + SUBTEST(easy) + { + check_result((">.v" + "..." + "^.<"), + 0, + 'v', + 3, + 3, + INFINITE_LOOP); + } + SUBTEST(medium) + { + check_result((">v" + "^<"), + 2, + 'v', + 2, + 2, + INFINITE_LOOP); + } + SUBTEST(hard) + { + check_result(("v.v" + "..." + "^.^"), + 0, + '>', + 3, + 3, + INFINITE_LOOP); + } + SUBTEST(harder) + { + check_result((">.v.." + "....." + "^...<" + "....." + "..>.^"), + 4, + 'v', + 5, + 5, + INFINITE_LOOP); + } +} diff --git a/static/files/pb071/bonuses/05-06/CMakeLists.txt b/static/files/pb071/bonuses/05-06/CMakeLists.txt new file mode 100644 index 0000000..9273d61 --- /dev/null +++ b/static/files/pb071/bonuses/05-06/CMakeLists.txt @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.0) + +# Project configuration +project(seminar05-06-bonus-bmp) +set(SOURCES bmp.h bmp.c) +set(EXECUTABLE bmp) + +# Executable +add_executable(bmp ${SOURCES} main.c) +add_executable(test_bmp ${SOURCES} cut.h test_bmp.c) + +# Configure compiler warnings +if (CMAKE_C_COMPILER_ID MATCHES Clang OR ${CMAKE_C_COMPILER_ID} STREQUAL GNU) + # using regular Clang, AppleClang or GCC + # Strongly suggested: neable -Werror + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 -Wall -Wextra -pedantic") +elseif (${CMAKE_C_COMPILER_ID} STREQUAL MSVC) + # using Visual Studio C++ + target_compile_definitions(${EXECUTABLE} PRIVATE _CRT_SECURE_NO_DEPRECATE) + set(CMAKE_CXX_FLAGS "/permissive- /W4 /EHsc") +endif() + +if(MINGW) + target_compile_definitions(${EXECUTABLE} PRIVATE __USE_MINGW_ANSI_STDIO=1) +endif() diff --git a/static/files/pb071/bonuses/05-06/bmp.c b/static/files/pb071/bonuses/05-06/bmp.c new file mode 100644 index 0000000..32865d2 --- /dev/null +++ b/static/files/pb071/bonuses/05-06/bmp.c @@ -0,0 +1,153 @@ +#include "bmp.h" + +#include +#include +#include +#include + +#define UNUSED(var) ((void) (var)) + +/** + * Return reversed string. + * + * Function returns a pointer to the reversed string, which has been created + * from the input parameter. If the input string is NULL or memory could not be + * allocated, function returns NULL. + * + * @param text input string + * @return reversed representation of input string, or NULL, if the string could + * not be created. + */ +char *reverse(const char *text) +{ + /* TODO */ + UNUSED(text); + return NULL; +} + +/** + * @brief Checks if key is valid. + * @param key String that is used as a key + * @returns true, if key is valid; false otherwise + */ +static bool check_key(const char *key) +{ + /* TODO */ + UNUSED(key); + return false; +} + +/** + * Function for encrypting the given plaintext by applying the Vigenère cipher. + * + * @param key Pointer to a string representing the key which will be used + * for encrypting the plaintext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text Pointer to a string representing the plaintext to be + * encrypted. + * @return the address of a copy of the ciphertext encrypted by the Vigenère + * cipher, or NULL if the encryption was not successful. + */ +char *vigenere_encrypt(const char *key, const char *text) +{ + /* TODO */ + UNUSED(key); + UNUSED(text); + return NULL; +} + +/** + * Function for decrypting the given ciphertext by applying the Vigenère cipher. + * + * @param key Pointer to a string representing the key which has been used + * for encrypting the ciphertext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text Pointer to a string representing the ciphertext to be + * decrypted. + * @return the address of a copy of the plaintext decrypted by the Vigenère + * cipher, or NULL if the decryption was not successful. + */ +char *vigenere_decrypt(const char *key, const char *text) +{ + /* TODO */ + UNUSED(key); + UNUSED(text); + return NULL; +} + +/** + * Function for bitwise encryption according to the following process: + * The character about to be encrypted is divided in half (4 bits + 4 bits). + * Subsequently, the bits in the left half are divided into two pairs and the + * values inside each pair are swapped. The four bits created by this way are + * then used in a bitwise XOR operation with the remaining 4 bits. + * + * @param text String representing the plaintext to be encrypted. + * @return a pointer to a newly created string containing the ciphertext + * produced by encrypting the plaintext, or NULL if the encryption was not + * successful. + */ +unsigned char *bit_encrypt(const char *text) +{ + /* TODO */ + UNUSED(text); + return NULL; +} + +/** + * Function for bitwise decryption - it is the inverse of the bitwise encryption + * function. + * + * @param text String representing the ciphertext to be decrypted. + * @return a pointer to a newly created string containing the plaintext produced + * by decrypting the ciphertext, or NULL if the decryption was not successful. + */ +char *bit_decrypt(const unsigned char *text) +{ + /* TODO */ + UNUSED(text); + return NULL; +} + +/** + * Function for encrypting the given plaintext by applying the BMP cipher. + * The process of encrypting by BMP: + *
    + *
  1. the provided input string is encrypted by function reverse() + *
  2. the acquired string is encrypted by function vigenere_encrypt() + *
  3. function bit_encrypt() is applied on the resulting string + *
+ * + * @param key Pointer to a string representing the key which will be used + * for encrypting the plaintext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text String representing the plaintext to be encrypted. + * @return the address of a copy of the ciphertext encrypted by the BMP cipher, + * or NULL if the encryption was not successful. + */ +unsigned char *bmp_encrypt(const char *key, const char *text) +{ + /* TODO */ + UNUSED(key); + UNUSED(text); + return NULL; +} + +/** + * Function for decrypting the given ciphertext by applying the BMP cipher. + * The process of decrypting by BMP is the opposite of BMP encryption. + * + * @param key Pointer to a string representing the key which has been used + * for encrypting the ciphertext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text String representing the ciphertext to be decrypted. + * @return the address of a copy of the plaintext decrypted by the BMP cipher, + * or NULL if the decryption was not successful. + */ +char *bmp_decrypt(const char *key, const unsigned char *text) +{ + /* TODO */ + UNUSED(key); + UNUSED(text); + return NULL; +} diff --git a/static/files/pb071/bonuses/05-06/bmp.h b/static/files/pb071/bonuses/05-06/bmp.h new file mode 100644 index 0000000..7470a3d --- /dev/null +++ b/static/files/pb071/bonuses/05-06/bmp.h @@ -0,0 +1,98 @@ +#ifndef _BMP_H +#define _BMP_H + +/** + * Return reversed string. + * + * Function returns a pointer to the reversed string, which has been created + * from the input parameter. If the input string is NULL or memory could not be + * allocated, function returns NULL. + * + * @param text input string + * @return reversed representation of input string, or NULL, if the string could + * not be created. + */ +char *reverse(const char *text); + +/** + * Function for encrypting the given plaintext by applying the Vigenère cipher. + * + * @param key Pointer to a string representing the key which will be used + * for encrypting the plaintext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text Pointer to a string representing the plaintext to be + * encrypted. + * @return the address of a copy of the ciphertext encrypted by the Vigenère + * cipher, or NULL if the encryption was not successful. + */ +char *vigenere_encrypt(const char *key, const char *text); + +/** + * Function for decrypting the given ciphertext by applying the Vigenère cipher. + * + * @param key Pointer to a string representing the key which has been used + * for encrypting the ciphertext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text Pointer to a string representing the ciphertext to be + * decrypted. + * @return the address of a copy of the plaintext decrypted by the Vigenère + * cipher, or NULL if the decryption was not successful. + */ +char *vigenere_decrypt(const char *key, const char *text); + +/** + * Function for bitwise encryption according to the following process: + * The character about to be encrypted is divided in half (4 bits + 4 bits). + * Subsequently, the bits in the left half are divided into two pairs and the + * values inside each pair are swapped. The four bits created by this way are + * then used in a bitwise XOR operation with the remaining 4 bits. + * + * @param text String representing the plaintext to be encrypted. + * @return a pointer to a newly created string containing the ciphertext + * produced by encrypting the plaintext, or NULL if the encryption was not + * successful. + */ +unsigned char *bit_encrypt(const char *text); + +/** + * Function for bitwise decryption - it is the inverse of the bitwise encryption + * function. + * + * @param text String representing the ciphertext to be decrypted. + * @return a pointer to a newly created string containing the plaintext produced + * by decrypting the ciphertext, or NULL if the decryption was not successful. + */ +char *bit_decrypt(const unsigned char *text); + +/** + * Function for encrypting the given plaintext by applying the BMP cipher. + * The process of encrypting by BMP: + *
    + *
  1. the provided input string is encrypted by function reverse() + *
  2. the acquired string is encrypted by function vigenere_encrypt() + *
  3. function bit_encrypt() is applied on the resulting string + *
+ * + * @param key Pointer to a string representing the key which will be used + * for encrypting the plaintext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text String representing the plaintext to be encrypted. + * @return the address of a copy of the ciphertext encrypted by the BMP cipher, + * or NULL if the encryption was not successful. + */ +unsigned char *bmp_encrypt(const char *key, const char *text); + +/** + * Function for decrypting the given ciphertext by applying the BMP cipher. + * The process of decrypting by BMP is the opposite of BMP encryption. + * + * @param key Pointer to a string representing the key which has been used + * for encrypting the ciphertext. The key is represented by a single + * case-insensitive word consisting of only alphabetical characters. + * @param text String representing the ciphertext to be decrypted. + * @return the address of a copy of the plaintext decrypted by the BMP cipher, + * or NULL if the decryption was not successful. + */ +char *bmp_decrypt(const char *key, const unsigned char *text); + +#endif diff --git a/static/files/pb071/bonuses/05-06/main.c b/static/files/pb071/bonuses/05-06/main.c new file mode 100644 index 0000000..19e1bd8 --- /dev/null +++ b/static/files/pb071/bonuses/05-06/main.c @@ -0,0 +1,8 @@ +#include "playfair.h" + +#include + +int main(void) +{ + return 0; +} diff --git a/static/files/pb071/bonuses/05-06/test_bmp.c b/static/files/pb071/bonuses/05-06/test_bmp.c new file mode 100644 index 0000000..594e8ca --- /dev/null +++ b/static/files/pb071/bonuses/05-06/test_bmp.c @@ -0,0 +1,251 @@ +#include "bmp.h" + +#include +#include +#include + +#define CUT_MAIN +#include "cut.h" + +void test_reverse(const char *input, const char *output) +{ + char *reversed = reverse(input); + + // check if not NULL + ASSERT(reversed != NULL); + + int result = strcmp(reversed, output); + if (result != 0) { + DEBUG_MSG("Expected: %s, but got: %s\n", output, reversed); + } + + ASSERT(strcmp(reversed, output) == 0); + free(reversed); +} + +TEST(REVERSE) +{ + SUBTEST(ABCD) + { + test_reverse("ABCD", "DCBA"); + } + SUBTEST(BADACAD) + { + test_reverse("BADACAD", "DACADAB"); + } + SUBTEST(qqsfyCCDAADQWQLLLlccaasq) + { + test_reverse("qqsfyCCDAADQWQLLLlccaasq", "QSAACCLLLLQWQDAADCCYFSQQ"); + } + SUBTEST(NULL) + { + ASSERT(reverse(NULL) == NULL); + } + SUBTEST(EMPTY) + { + char *result = reverse(""); + ASSERT(result[0] == '\0'); + free(result); + } + SUBTEST(RANDOM) + { + test_reverse("hello", "OLLEH"); + test_reverse("malloc", "COLLAM"); + test_reverse("calloc", "COLLAC"); + test_reverse("realloc", "COLLAER"); + test_reverse("everything", "GNIHTYREVE"); + test_reverse("failing", "GNILIAF"); + test_reverse("LOL", "LOL"); + test_reverse("1273912739&^%$$*((", "((*$$%^&9372193721"); + } +} + +void test_bit(const char *input, const unsigned char *output, size_t length) +{ + unsigned char *encrypted = bit_encrypt(input); + char *decrypted = bit_decrypt(encrypted); + + for (size_t i = 0; i < length; i++) { + ASSERT(encrypted[i] == output[i]); + ASSERT(decrypted[i] == input[i]); + } + + free(decrypted); + free(encrypted); +} + +TEST(BIT) +{ + SUBTEST(HELLO_WORLD) + { + const unsigned char output[] = { 0x80, 0x9c, 0x95, 0x95, 0x96, 0x11, 0xbc, 0x96, 0xb9, 0x95, 0x9d, 0x10 }; + test_bit("Hello world!", output, 12); + } + SUBTEST(MALLOC) + { + const unsigned char output[] = { 0x94, 0x98, 0x95, 0x95, 0x96, 0x9a }; + test_bit("malloc", output, 6); + } + SUBTEST(CALLOC) + { + const unsigned char output[] = { 0x9a, 0x98, 0x95, 0x95, 0x96, 0x9a }; + test_bit("calloc", output, 6); + } + SUBTEST(REALLOC) + { + const unsigned char output[] = { 0xb9, 0x9c, 0x98, 0x95, 0x95, 0x96, 0x9a }; + test_bit("realloc", output, 7); + } + SUBTEST(EVERYTHING) + { + const unsigned char output[] = { 0x9c, 0xbd, 0x9c, 0xb9, 0xb2, 0xbf, 0x91, 0x90, 0x97, 0x9e }; + test_bit("everything", output, 10); + } + SUBTEST(FAILING) + { + const unsigned char output[] = { 0x9f, 0x98, 0x90, 0x95, 0x90, 0x97, 0x9e }; + test_bit("failing", output, 7); + } + SUBTEST(LOL) + { + const unsigned char output[] = { 0x84, 0x87, 0x84 }; + test_bit("LOL", output, 3); + } + SUBTEST(GARBAGE) + { + const unsigned char output[] = { 0x32, 0x31, 0x34, 0x30, 0x3a, 0x32, 0x31, 0x34, 0x30, 0x3a, 0x17, 0xa4, 0x14, 0x15, 0x15, 0x1b, 0x19, 0x19 }; + test_bit("1273912739&^%$$*((", output, 18); + } + SUBTEST(HELLO_FI) + { + const unsigned char output[] = { 0x91, 0x9c, 0x95, 0x95, 0x96 }; + test_bit("hello", output, 5); + } + SUBTEST(BYE_FI) + { + const unsigned char output[] = { 0x9b, 0xb2, 0x9c }; + test_bit("bye", output, 3); + } +} + +void test_vigenere(const char *key, const char *input, const char *output, size_t length) +{ + char *encrypted = vigenere_encrypt(key, input); + char *decrypted = vigenere_decrypt(key, encrypted); + + ASSERT(encrypted != NULL); + ASSERT(decrypted != NULL); + + for (size_t i = 0; i < length; i++) { + ASSERT(encrypted[i] == output[i]); + ASSERT(decrypted[i] == toupper(input[i])); + } + + free(encrypted); + free(decrypted); +} + +TEST(VIGENERE) +{ + SUBTEST(HELLO_WORLD) + { + test_vigenere("CoMPuTeR", "Hello world!", "JSXAI PSINR!", 12); + } + SUBTEST(MALLOC) + { + test_vigenere("fails", "malloc", "RATWGH", 6); + } + SUBTEST(CALLOC) + { + test_vigenere("fails", "calloc", "HATWGH", 6); + } + SUBTEST(REALLOC) + { + test_vigenere("fails", "realloc", "WEIWDTC", 7); + } + SUBTEST(EVERYTHING) + { + test_vigenere("FAILS", "everything", "JVMCQYHQYY", 10); + } + SUBTEST(FAILING) + { + test_vigenere("fails", "failing", "KAQWASG", 7); + } + SUBTEST(LOL) + { + test_vigenere("oopsie", "LOL", "ZCA", 3); + } + SUBTEST(GARBAGE) + { + test_vigenere("fi", "1273912739&^%$$*((", "1273912739&^%$$*((", 18); + } + SUBTEST(HELLO_FI) + { + test_vigenere("fi", "hello", "MMQTT", 5); + } + SUBTEST(BYE_FI) + { + test_vigenere("fi", "bye", "GGJ", 3); + } +} + +void test_bmp(const char *key, const char *input, const unsigned char *encrypted_expected, const char *decrypted_expected, size_t length) +{ + unsigned char *encrypted = bmp_encrypt(key, input); + char *decrypted = bmp_decrypt(key, encrypted); + + ASSERT(encrypted != NULL); + ASSERT(decrypted != NULL); + + for (size_t i = 0; i < length; i++) { + ASSERT(encrypted[i] == encrypted_expected[i]); + ASSERT(decrypted[i] == decrypted_expected[i]); + } + + free(encrypted); + free(decrypted); +} + +TEST(BMP) +{ + SUBTEST(HELLO) + { + const unsigned char encrypted_expected[] = { 0xae, 0xae, 0xab, 0x85, 0x85 }; + test_bmp("fi", "hello", encrypted_expected, "HELLO", 5); + } + SUBTEST(FI) + { + const unsigned char encrypted_expected[] = { 0xaa, 0x82 }; + test_bmp("hello", "fi", encrypted_expected, "FI", 2); + } + SUBTEST(RANDOM) + { + const unsigned char encrypted_expected[] = { 0xa9, 0x87, 0xaf, 0x87, 0x89, 0xa2 }; + test_bmp("garbage", "random", encrypted_expected, "RANDOM", 6); + } + SUBTEST(LETS) + { + const unsigned char encrypted_expected[] = { 0x83, 0xa2, 0x81, 0x8c }; + test_bmp("see", "lets", encrypted_expected, "LETS", 4); + } + SUBTEST(how) + { + const unsigned char encrypted_expected[] = { 0x8d, 0x80, 0xaa }; + test_bmp("it", "how", encrypted_expected, "HOW", 3); + } + SUBTEST(works) + { + const unsigned char encrypted_expected[] = { 0xa9, 0x8b, 0x89, 0xa8, 0x80 }; + test_bmp("asjdljasdja", "works", encrypted_expected, "WORKS", 5); + } + SUBTEST(NOSPACES) + { + const unsigned char encrypted_expected[] = { 0x8d, 0x81, 0x82, 0x85, 0xae, 0xa0, 0x89, 0xa8, 0xa0, 0x85, 0x84, 0x89, 0x85, 0x84, 0x89, 0x8e, 0x8a, 0x84, 0x8e, 0xac, 0x84, 0xa9, 0xa8, 0xac, 0xa2 }; + test_bmp("meh", "longerTextThatHasNoSpaces", encrypted_expected, "LONGERTEXTTHATHASNOSPACES", 25); + } + SUBTEST(ayaya) + { + const unsigned char encrypted_expected[] = { 0x80, 0xa9, 0x80, 0x8e, 0xaf, 0x8e, 0x80, 0xa9, 0x80, 0x8e, 0xaf, 0x8e, 0x80, 0xa9, 0x80, 0x8e, 0xaf, 0x8e, 0x80, 0xa9, 0x80, 0x8e, 0xaf, 0x8e, 0x80, 0xa9, 0x80, 0x8e, 0xaf, 0x8e, 0x80, 0xa9, 0x80 }; + test_bmp("HUH", "ayayayayayayayayayayayayayayayaya", encrypted_expected, "AYAYAYAYAYAYAYAYAYAYAYAYAYAYAYAYA", 33); + } +} diff --git a/static/files/pb071/bonuses/08/CMakeLists.txt b/static/files/pb071/bonuses/08/CMakeLists.txt new file mode 100644 index 0000000..bc81069 --- /dev/null +++ b/static/files/pb071/bonuses/08/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.0) + +# Project configuration +project(seminar08-bonus) +set(SOURCES counting.c trees.c) + +# Executable +add_executable(counting counting.c) +add_executable(trees trees.c) + +# Configure compiler warnings +if (CMAKE_C_COMPILER_ID MATCHES Clang OR ${CMAKE_C_COMPILER_ID} STREQUAL GNU) + # using regular Clang, AppleClang or GCC + # Strongly suggested: neable -Werror + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 -Wall -Wextra -pedantic") +elseif (${CMAKE_C_COMPILER_ID} STREQUAL MSVC) + # using Visual Studio C++ + target_compile_definitions(${EXECUTABLE} PRIVATE _CRT_SECURE_NO_DEPRECATE) + set(CMAKE_CXX_FLAGS "/permissive- /W4 /EHsc") +endif() + +if(MINGW) + target_compile_definitions(${EXECUTABLE} PRIVATE __USE_MINGW_ANSI_STDIO=1) +endif() diff --git a/static/files/pb071/bonuses/08/Makefile b/static/files/pb071/bonuses/08/Makefile new file mode 100644 index 0000000..5fd2c7c --- /dev/null +++ b/static/files/pb071/bonuses/08/Makefile @@ -0,0 +1,10 @@ +check-counting: + python3 test-bonus.py test counting + +check-counting-bonus: + python3 test-bonus.py test counting --no-global-config + +check: check-counting check-counting-bonus + +clean: + rm -rf test-*/*.out_produced diff --git a/static/files/pb071/bonuses/08/counting.c b/static/files/pb071/bonuses/08/counting.c new file mode 100644 index 0000000..66d6d29 --- /dev/null +++ b/static/files/pb071/bonuses/08/counting.c @@ -0,0 +1,60 @@ +#include +#include +#include + +#define UNUSED(x) ((void) (x)) + +/** + * @brief Counts occurences of any substring in the file. + * @param file File where the substring is to be counted in. + * @param substring Substring to be counted. + * @returns Count of occurences of the substring the given file. + */ +long count_anything(FILE *file, const char *substring) +{ + /* TODO */ + UNUSED(file); + UNUSED(substring); + return 0; +} + +/** + * @brief Counts ananas. Nothing more to it. + * @param file File where the ananas is to be counted in. + * @returns Count of occurences of ananas. + */ +long count_ananas(FILE *file) +{ + return count_anything(file, "ananas"); +} + +/** + * @brief Writes given number to the file, character by character. + * @param file File where the number is supposed to be written. + * @param number Number to be written. + */ +void write_number(FILE *file, long number) +{ + /* TODO */ + UNUSED(file); + UNUSED(number); +} + +/** + * @brief Main function of a program. + * @returns Exit code that denotes following: + * 0 in case of success + * 1 in case of invalid usage + * 2 in case of failure on input file + * 3 in case of failure on output file + */ +int main(int argc, char **argv) +{ + if (argc < 3 || argc > 4) { + printf("Usage: %s [string-to-be-counted]\n", argv[0]); + return 1; + } + + /* TODO */ + return 0; +} diff --git a/static/files/pb071/bonuses/08/counting.json b/static/files/pb071/bonuses/08/counting.json new file mode 100644 index 0000000..4001450 --- /dev/null +++ b/static/files/pb071/bonuses/08/counting.json @@ -0,0 +1,4 @@ +{ + "args": ["{test_case}.in", "{test_case}.out_produced"], + "specialized_test": ["diff", "{test_case}.out", "{test_case}.out_produced"] +} diff --git a/static/files/pb071/bonuses/08/test-bonus.py b/static/files/pb071/bonuses/08/test-bonus.py new file mode 120000 index 0000000..98c2f91 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-bonus.py @@ -0,0 +1 @@ +../../test-bonus.py \ No newline at end of file diff --git a/static/files/pb071/bonuses/08/test-counting/basic.in b/static/files/pb071/bonuses/08/test-counting/basic.in new file mode 100644 index 0000000..d50958f --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/basic.in @@ -0,0 +1 @@ +ananas diff --git a/static/files/pb071/bonuses/08/test-counting/basic.out b/static/files/pb071/bonuses/08/test-counting/basic.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/basic.out @@ -0,0 +1 @@ +1 diff --git a/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.in b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.in new file mode 100644 index 0000000..2ce25df --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.in @@ -0,0 +1 @@ +ananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananasananas diff --git a/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.out b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.out new file mode 100644 index 0000000..16b8206 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_ananas.out @@ -0,0 +1 @@ +1747627 diff --git a/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.in b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.in new file mode 100644 index 0000000..9d3bcb3 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.in @@ -0,0 +1 @@ +ananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananananan diff --git a/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.out b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/biiiiiiig_nothing.out @@ -0,0 +1 @@ +0 diff --git a/static/files/pb071/bonuses/08/test-counting/empty.in b/static/files/pb071/bonuses/08/test-counting/empty.in new file mode 100644 index 0000000..e69de29 diff --git a/static/files/pb071/bonuses/08/test-counting/empty.out b/static/files/pb071/bonuses/08/test-counting/empty.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/empty.out @@ -0,0 +1 @@ +0 diff --git a/static/files/pb071/bonuses/08/test-counting/fgetc.in b/static/files/pb071/bonuses/08/test-counting/fgetc.in new file mode 100644 index 0000000..6fabcac --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/fgetc.in @@ -0,0 +1,65 @@ +FGETC(3) Linux Programmer's Manual FGETC(3) + +NAME + fgetc, fgets, getc, getchar, ungetc - input of characters and strings + +SYNOPSIS + #include + + int fgetc(FILE *stream); + + char *fgets(char *s, int size, FILE *stream); + + int getc(FILE *stream); + + int getchar(void); + + int ungetc(int c, FILE *stream); + +DESCRIPTION + fgetc() reads the next character from stream and returns it as an unsigned char cast to an int, or EOF on end of file or error. + + getc() is equivalent to fgetc() except that it may be implemented as a macro which evaluates stream more than once. + + getchar() is equivalent to getc(stdin). + + fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buf‐ + fer. A terminating null byte ('\0') is stored after the last character in the buffer. + + ungetc() pushes c back to stream, cast to unsigned char, where it is available for subsequent read operations. Pushed-back characters will be returned in reverse order; only one pushback is guaranteed. + + Calls to the functions described here can be mixed with each other and with calls to other input functions from the stdio library for the same input stream. + + For nonlocking counterparts, see unlocked_stdio(3). + +RETURN VALUE + fgetc(), getc() and getchar() return the character read as an unsigned char cast to an int or EOF on end of file or error. + + fgets() returns s on success, and NULL on error or when end of file occurs while no characters have been read. + + ungetc() returns c on success, or EOF on error. + +ATTRIBUTES + For an explanation of the terms used in this section, see attributes(7). + + ┌──────────────────────────┬───────────────┬─────────┐ + │Interface │ Attribute │ Value │ + ├──────────────────────────┼───────────────┼─────────┤ + │fgetc(), fgets(), getc(), │ Thread safety │ MT-Safe │ + │getchar(), ungetc() │ │ │ + └──────────────────────────┴───────────────┴─────────┘ + +CONFORMING TO + POSIX.1-2001, POSIX.1-2008, C89, C99. + + It is not advisable to mix calls to input functions from the stdio library with low-level calls to read(2) for the file descriptor associated with the input stream; the results will be undefined and very prob‐ + ably not what you want. + +SEE ALSO + read(2), write(2), ferror(3), fgetwc(3), fgetws(3), fopen(3), fread(3), fseek(3), getline(3), gets(3), getwchar(3), puts(3), scanf(3), ungetwc(3), unlocked_stdio(3), feature_test_macros(7) + +COLOPHON + This page is part of release 5.07 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at + https://www.kernel.org/doc/man-pages/. + +GNU 2017-09-15 FGETC(3) diff --git a/static/files/pb071/bonuses/08/test-counting/fgetc.json b/static/files/pb071/bonuses/08/test-counting/fgetc.json new file mode 100644 index 0000000..2a3c3d4 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/fgetc.json @@ -0,0 +1,4 @@ +{ + "args": ["{test_case}.in", "{test_case}.out_produced", "getc"], + "specialized_test": ["diff", "{test_case}.out", "{test_case}.out_produced"] +} diff --git a/static/files/pb071/bonuses/08/test-counting/fgetc.out b/static/files/pb071/bonuses/08/test-counting/fgetc.out new file mode 100644 index 0000000..7273c0f --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/fgetc.out @@ -0,0 +1 @@ +25 diff --git a/static/files/pb071/bonuses/08/test-counting/going_bananas.in b/static/files/pb071/bonuses/08/test-counting/going_bananas.in new file mode 100644 index 0000000..f8348bd --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/going_bananas.in @@ -0,0 +1 @@ +ananas bananas banana nanas nana diff --git a/static/files/pb071/bonuses/08/test-counting/going_bananas.json b/static/files/pb071/bonuses/08/test-counting/going_bananas.json new file mode 100644 index 0000000..a2d56e4 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/going_bananas.json @@ -0,0 +1,4 @@ +{ + "args": ["{test_case}.in", "{test_case}.out_produced", "banana"], + "specialized_test": ["diff", "{test_case}.out", "{test_case}.out_produced"] +} diff --git a/static/files/pb071/bonuses/08/test-counting/going_bananas.out b/static/files/pb071/bonuses/08/test-counting/going_bananas.out new file mode 100644 index 0000000..0cfbf08 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/going_bananas.out @@ -0,0 +1 @@ +2 diff --git a/static/files/pb071/bonuses/08/test-counting/lorem_empty.in b/static/files/pb071/bonuses/08/test-counting/lorem_empty.in new file mode 100644 index 0000000..92307c4 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/lorem_empty.in @@ -0,0 +1,31 @@ + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi auctor euismod enim a sodales. Praesent efficitur pharetra mi, et finibus nulla pellentesque euismod. Sed fringilla sed mi in aliquet. Quisque eu nibh id arcu suscipit tempus. Mauris quam urna, volutpat id iaculis non, lobortis a orci. Quisque commodo lectus sit amet nisl mattis accumsan. Proin iaculis erat in elementum dapibus. + +Aliquam commodo congue neque id porta. Aliquam dictum justo est, a vulputate diam ullamcorper ac. Etiam cursus augue eu porttitor sagittis. Fusce egestas tellus quis semper egestas. Nunc metus neque, accumsan non nulla in, fringilla tincidunt tellus. Aliquam in tempus eros. Donec ornare leo in neque pretium mattis. Morbi consequat lacus vitae justo auctor, eget interdum lorem tincidunt. Morbi at nisl lobortis, ultricies augue a, viverra libero. Phasellus sit amet magna aliquam, scelerisque lectus sit amet, euismod eros. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in ipsum dui. Maecenas euismod est a dui euismod tristique. Maecenas tincidunt diam ut velit rutrum, a bibendum ligula pellentesque. Maecenas sit amet turpis a mi tristique vulputate non vitae metus. Aenean ut lectus ut eros maximus hendrerit at sed arcu. Nulla condimentum velit non mauris consectetur tempor. Duis fringilla ligula aliquam massa malesuada dignissim. Suspendisse dignissim arcu et augue tristique vestibulum. Nam auctor vulputate dignissim. Integer eget ultrices elit. Vivamus placerat sit amet mauris et lacinia. Maecenas lacinia ipsum blandit justo efficitur congue. Aliquam erat volutpat. Vivamus risus enim, mattis ac lacus molestie, blandit volutpat elit. + +Mauris id arcu vitae urna finibus scelerisque. Nullam dictum interdum lacinia. Nunc congue turpis malesuada velit maximus suscipit. Pellentesque quis interdum risus. Quisque leo massa, viverra in condimentum quis, pharetra ut est. Nullam vehicula tempus elit sit amet placerat. Integer elementum, mauris eget rhoncus sagittis, est massa laoreet felis, sed ultricies risus urna et mi. Proin commodo ut libero in commodo. Nullam consequat tellus non tellus cursus, eget luctus tellus tempor. Proin ante risus, convallis et ex ac, cursus auctor turpis. Integer et mauris ut enim suscipit laoreet. Nulla tortor augue, eleifend id faucibus sed, faucibus eu turpis. Sed vel nibh non tortor venenatis dignissim. Nunc vel maximus mauris. + +Mauris porta nunc eros, vel mattis augue dignissim in. Nunc tempus ac purus dignissim dapibus. Nulla sit amet ipsum dapibus, viverra dolor eu, pharetra lectus. Sed maximus felis justo. Cras nec condimentum nisl. Donec vitae metus suscipit, auctor augue in, blandit purus. Pellentesque viverra non est id mollis. Aenean fermentum nisi sit amet urna tincidunt, eget accumsan mauris bibendum. In vestibulum consectetur erat, ac gravida odio ultrices eu. Nullam quam mi, sagittis a nisl quis, vestibulum ultrices est. + +In ut tempus nibh. Morbi consectetur gravida feugiat. Morbi non eros ut dui faucibus sagittis. Duis euismod metus quis enim aliquet iaculis. Pellentesque pellentesque sed lorem vitae euismod. Aliquam luctus fringilla urna, eget hendrerit augue. Aliquam malesuada nisl id eros viverra aliquam id ut sem. Mauris vel arcu eget nisi finibus varius in vitae arcu. Maecenas aliquet gravida quam feugiat vestibulum. Maecenas id nunc sit amet nulla imperdiet pharetra quis eu lectus. In pellentesque mattis bibendum. Proin ultrices eget turpis eu accumsan. In porttitor ante eget odio mattis egestas. + +Mauris lacinia lacus vel eleifend mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu quam orci. Vestibulum fermentum, odio iaculis porta semper, enim lorem faucibus nisl, eu vulputate enim turpis quis massa. Cras hendrerit pulvinar ante id mattis. Phasellus vitae neque lobortis, aliquam purus in, commodo ex. Aenean suscipit metus non sollicitudin porttitor. Maecenas a justo cursus, mattis ligula ut, vestibulum felis. Curabitur dapibus finibus lectus nec porttitor. Integer fringilla, dolor in varius sodales, purus risus bibendum tortor, in eleifend risus neque a elit. Phasellus placerat enim at nulla aliquam luctus. Nunc consequat placerat ornare. Suspendisse faucibus gravida arcu id ullamcorper. + +Praesent dapibus mauris eu purus maximus vehicula. Nulla ultrices luctus eleifend. Etiam efficitur aliquam diam eu varius. Sed quis lacus volutpat, aliquet eros convallis, interdum erat. In auctor ipsum vitae massa rhoncus, nec sagittis purus gravida. Nullam condimentum fringilla euismod. Proin congue nisi ut est lacinia elementum. + +Maecenas leo ex, mattis non neque ut, rutrum pulvinar enim. Morbi malesuada mollis risus, sed faucibus eros ultrices at. Aenean aliquet in odio sit amet rhoncus. Nulla nisi neque, vestibulum a sem sed, consectetur convallis neque. Nullam ac lectus vel eros luctus tincidunt rhoncus eu dui. Pellentesque vitae lorem congue, pretium felis vel, mattis velit. Nullam nulla elit, convallis eu congue sed, ultricies nec diam. Mauris et ligula dui. Praesent sit amet laoreet dolor. Aliquam erat volutpat. Nam feugiat iaculis vestibulum. Ut eget turpis at diam interdum finibus. Aliquam dictum fermentum dui, eget lobortis nibh interdum sagittis. + +Nullam elit sapien, mollis sed convallis a, consectetur at ipsum. Integer viverra consequat turpis vel elementum. Aliquam tincidunt et est sit amet condimentum. Aenean nec sem semper, semper urna quis, aliquet ante. Duis malesuada, massa sit amet congue feugiat, sem diam accumsan lectus, at vestibulum dui libero non lectus. Maecenas nunc tortor, varius sed libero in, placerat consequat neque. Maecenas rutrum sem enim, vel hendrerit dolor luctus nec. Aliquam fringilla purus sagittis consequat pretium. Suspendisse iaculis pharetra est, eleifend elementum mauris viverra eu. Ut pellentesque tempus ipsum, ac maximus risus imperdiet ac. Nulla felis mauris, molestie eu aliquet non, pretium sit amet ante. Integer id cursus mauris. Nunc a mattis magna, nec luctus magna. Mauris sed vehicula nisi, id tincidunt mauris. Curabitur aliquam, eros vitae ultricies interdum, nunc felis placerat enim, eget maximus dui massa vel eros. Mauris turpis est, pretium ut fringilla at, lacinia non eros. + +Mauris nulla massa, facilisis ut dui at, consequat dignissim felis. Pellentesque vitae nibh sed dui convallis faucibus a et risus. In id mauris ligula. Nunc nec ante sem. Curabitur purus eros, molestie ut nunc ut, cursus hendrerit est. Mauris bibendum viverra rhoncus. Nulla varius fringilla nulla, ac hendrerit neque tincidunt sed. Morbi malesuada bibendum elementum. In hac habitasse platea dictumst. Mauris at massa sed massa auctor pellentesque quis quis est. Fusce pharetra, sem nec malesuada consectetur, sapien nisl fermentum nisi, ac volutpat sapien sapien id ligula. + +Mauris finibus ligula ac dolor feugiat, ac pellentesque felis venenatis. Cras scelerisque tempus libero, quis sollicitudin nunc pellentesque nec. Praesent pulvinar leo turpis, vel sagittis ligula dignissim ac. Nam ut bibendum diam. Etiam fermentum nunc tellus, sed ultrices neque porttitor a. Quisque placerat dignissim eros. Phasellus consectetur nisl erat, id luctus lacus scelerisque quis. Aenean mattis molestie mi, ac rhoncus felis congue id. Aliquam erat volutpat. Vestibulum ac accumsan dui. Phasellus a orci nec lacus rhoncus semper eu ac sapien. + +Sed finibus, lectus eget interdum vehicula, lorem tortor ornare urna, id lacinia eros sem eu urna. Pellentesque consectetur vulputate arcu vitae aliquam. Aenean eleifend tempor dui. Mauris lectus diam, euismod vitae posuere et, pulvinar quis nulla. Donec sagittis vestibulum mi quis molestie. Sed eu lectus quis nunc vulputate tristique. Proin imperdiet nibh lectus. Nunc sagittis risus libero, sit amet dignissim ligula mollis a. Proin auctor, eros non condimentum fringilla, dolor neque consequat augue, quis ullamcorper velit nibh id nibh. Quisque mollis sit amet justo nec ultrices. Mauris vel commodo felis, porttitor rutrum turpis. + +In et lacus quis ante commodo suscipit ac et leo. Nam in dui diam. Nulla molestie lacus ac nunc laoreet, vel lobortis nulla suscipit. Ut iaculis feugiat tincidunt. Vestibulum ut pharetra enim, vel pellentesque leo. Pellentesque sit amet rutrum mauris. Nullam ultricies augue id est interdum, sit amet consectetur eros eleifend. + +Aliquam ac pretium arcu, quis viverra mi. Mauris tincidunt tincidunt libero, id aliquam ipsum scelerisque quis. Donec vitae purus et eros dapibus pulvinar. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis efficitur tempus tortor, et sodales augue ultricies sed. Phasellus nec finibus lacus, in aliquet turpis. Maecenas id turpis augue. Nunc finibus turpis purus, aliquam tempor magna ullamcorper ut. Morbi sit amet erat gravida, egestas metus vel, porttitor diam. diff --git a/static/files/pb071/bonuses/08/test-counting/lorem_empty.out b/static/files/pb071/bonuses/08/test-counting/lorem_empty.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/lorem_empty.out @@ -0,0 +1 @@ +0 diff --git a/static/files/pb071/bonuses/08/test-counting/lorem_some.in b/static/files/pb071/bonuses/08/test-counting/lorem_some.in new file mode 100644 index 0000000..48e447f --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/lorem_some.in @@ -0,0 +1,31 @@ + + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi auctor euismod enim a sodales. Praesent efficitur pharetra mi, et finibus nulla pellentesque euismod. Sed fringilla sed mi in aliquet. Quisque eu nibh id arcu suscipit tempus. Mauris quam urna, volutpat id iaculis non, lobortis a orci. Quisque commodo lectus sit amet nisl mattis accumsan. Proin iaculis erat in elementum dapibus. + +Aliquam commodo congue neque id porta. Aliquam dictum justo est, a vulputate diam ullamcorper ac. Etiam cursus augue eu porttitor sagittis. Fusce egestas tellus quis semper egestas. Nunc metus neque, accumsan non nulla in, fringilla tincidunt tellus. Aliquam in tempus eros. Donec ornare leo in neque pretium mattis. Morbi consequat lacus vitae justo auctor, eget interdum lorem tincidunt. Morbi at nisl lobortis, ultricies augue a, viverra libero. Phasellus sit amet magna aliquam, scelerisque lectus sit amet, euismod eros. + +Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris in nananananananas dui. Maecenas euismod est a dui euismod tristique. Maecenas tincidunt diam ut velit rutrum, a bibendum ligula ananas. Maecenas sit amet turpis a mi tristique vulputate non vitae metus. Aenean ut lectus ut eros maximus hendrerit at sed arcu. Nulla condimentum velit non mauris consectetur tempor. Duis fringilla ligula aliquam massa malesuada dignissim. Suspendisse dignissim arcu et augue tristique vestibulum. Nam auctor vulputate dignissim. Integer eget ultrices elit. Vivamus placerat sit amet mauris et lacinia. Maecenas lacinia ipsum blandit justo efficitur congue. Aliquam erat volutpat. Vivamus risus enim, mattis ac lacus molestie, blandit volutpat elit. + +Mauris id arcu vitae urna finibus scelerisque. Nullam dictum interdum lacinia. Nunc congue turpis malesuada velit maximus suscipit. Pellentesque quis interdum risus. Quisque leo massa, viverra in condimentum quis, pharetra ut est. Nullam vehicula tempus elit sit amet placerat. Integer elementum, mauris eget rhoncus sagittis, est massa laoreet felis, sed ultricies risus urna et mi. Proin commodo ut libero in commodo. Nullam consequat tellus non tellus cursus, eget luctus tellus tempor. Proin ante risus, convallis et ex ac, cursus auctor turpis. Integer et mauris ut enim suscipit laoreet. Nulla tortor augue, eleifend id faucibus sed, faucibus eu turpis. Sed vel nibh non tortor venenatis dignissim. Nunc vel maximus mauris. + +Mauris porta nunc eros, vel mattis augue dignissim in. Nunc tempus ac purus dignissim dapibus. Nulla sit amet ipsum dapibus, viverra dolor eu, pharetra lectus. Sed maximus felis justo. Cras nec condimentum nisl. Donec vitae metus suscipit, auctor augue in, blandit purus. Pellentesque viverra non est id mollis. Aenean fermentum nisi sit amet urna tincidunt, eget accumsan mauris bibendum. In vestibulum consectetur erat, ac gravida odio ultrices eu. Nullam quam mi, sagittis a nisl quis, vestibulum ultrices est. + +In ut tempus nibh. Morbi consectetur gravida feugiat. Morbi non eros ut dui ananas sagittis. Duis euismod metus quis enim aliquet iaculis. Pellentesque pellentesque sed lorem vitae euismod. Aliquam luctus fringilla urna, eget hendrerit augue. Aliquam malesuada nisl id eros viverra aliquam id ut sem. Mauris vel arcu eget nisi finibus varius in vitae arcu. Maecenas aliquet gravida quam feugiat vestibulum. Maecenas id nunc sit amet nulla imperdiet pharetra quis eu lectus. In pellentesque mattis bibendum. Proin ultrices eget turpis eu accumsan. In porttitor ante eget odio mattis egestas. +anans +Mauris lacinia lacus vel eleifend mattis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Donec eu aaaaaaaaaaaaaaaaaaaaaaaaaaaaananas orci. Vestibulum fermentum, odio iaculis porta semper, enim lorem faucibus nisl, eu vulputate enim turpis quis massa. Cras hendrerit pulvinar ante id mattis. Phasellus vitae neque lobortis, aliquam purus in, commodo ex. Aenean suscipit metus non sollicitudin porttitor. Maecenas a justo cursus, mattis ligula ut, vestibulum felis. Curabitur dapibus finibus lectus nec porttitor. Integer fringilla, dolor in varius sodales, purus risus bibendum tortor, in eleifend risus neque a elit. Phasellus placerat enim at nulla aliquam luctus. Nunc consequat placerat ornare. Suspendisse faucibus gravida arcu id ullamcorper. +ananas +Praesent dapibus mauris eu purus maximus vehicula. Nulla ultrices luctus eleifend. Etiam efficitur aliquam diam eu varius. Sed quis lacus volutpat, aliquet eros convallis, interdum erat. In auctor ipsum vitae massa rhoncus, nec sagittis purus gravida. Nullam condimentum fringilla euismod. Proin congue nisi ut est lacinia elementum. + +Maecenas leo ex, mattis non neque ut, rutrum pulvinar enim. Morbi malesuada mollis risus, sed faucibus eros ultrices at. Aenean aliquet in aaaaaaaaaaaaaaaaaaaaaaaaaaaaananas sit amet rhoncus. Nulla nisi neque, vestibulum a sem sed, consectetur convallis neque. Nullam ac lectus vel eros luctus tincidunt rhoncus eu dui. Pellentesque vitae lorem congue, pretium felis vel, mattis velit. Nullam nulla elit, convallis eu congue sed, ultricies nec diam. Mauris et ligula dui. Praesent sit amet laoreet dolor. Aliquam erat volutpat. Nam feugiat iaculis vestibulum. Ut eget turpis at diam interdum finibus. Aliquam dictum fermentum dui, eget lobortis nibh interdum sagittis. + +Nullam elit sapien, mollis sed convallis a, consectetur at ipsum. Integer viverra consequat turpis vel elementum. Aliquam tincidunt et est sit amet condimentum. Aenean nec sem semper, semper urna quis, aliquet ante. Duis malesuada, massa sit amet congue feugiat, sem diam accumsan lectus, at vestibulum dui libero non lectus. Maecenas nunc tortor, varius sed libero in, placerat consequat neque. Maecenas rutrum sem enim, vel hendrerit dolor luctus nec. Aliquam fringilla purus sagittis consequat pretium. Suspendisse iaculis pharetra est, eleifend elementum mauris viverra eu. Ut pellentesque tempus ipsum, ac maximus risus imperdiet ac. Nulla felis mauris, molestie eu aliquet non, pretium sit amet ante. Integer id cursus mauris. Nunc a mattis magna, nec luctus magna. Mauris sed vehicula nisi, id tincidunt mauris. Curabitur aliquam, eros vitae ultricies interdum, nunc felis placerat enim, eget maximus dui massa vel eros. Mauris turpis est, pretium ut fringilla at, lacinia non eros. + +Mauris nulla massa, facilisis ut dui at, consequat dignissim felis. Pellentesque vitae nibh sed dui convallis faucibus a et risus. In id mauris ligula. Nunc nec ante sem. Curabitur purus eros, molestie ut nunc ut, cursus hendrerit est. Mauris bibendum viverra rhoncus. Nulla varius fringilla nulla, ac hendrerit neque tincidunt sed. Morbi malesuada bibendum elementum. In hac habitasse platea dictumst. Mauris at massa sed massa auctor pellentesque quis quis est. Fusce pharetra, sem nec malesuada consectetur, sapien nisl fermentum nisi, ac volutpat sapien sapien id ligula. + +Mauris finibus ligula ac dolor feugiat, ac pellentesque felis venenatis. Cras anaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanas tempus libero, quis sollicitudin nunc pellentesque nec. Praesent pulvinar leo turpis, vel sagittis ligula dignissim ac. Nam ut bibendum diam. Etiam fermentum nunc tellus, sed ultrices neque porttitor a. Quisque placerat dignissim eros. Phasellus consectetur nisl erat, id luctus lacus scelerisque quis. Aenean mattis molestie mi, ac rhoncus felis congue id. Aliquam erat volutpat. Vestibulum ac accumsan dui. Phasellus a orci nec lacus rhoncus semper eu ac sapien. + +Sed finibus, lectus eget interdum vehicula, lorem tortor ornare urna, id lacinia eros sem eu urna. Pellentesque consectetur vulputate arcu vitae aliquam. Aenean eleifend tempor dui. Mauris lectus diam, euismod vitae posuere et, pulvinar quis nulla. Donec sagittis vestibulum mi quis molestie. Sed eu lectus quis nunc vulputate tristique. Proin imperdiet nibh lectus. Nunc sagittis risus libero, sit amet dignissim ligula mollis a. Proin auctor, eros non condimentum fringilla, dolor neque consequat augue, quis ullamcorper velit nibh id nibh. Quisque mollis sit amet justo nec ultrices. Mauris vel commodo felis, porttitor rutrum turpis. +ananas +In et lacus quis ante commodo suscipit ac et leo. Nam in dui diam. Nulla molestie lacus ac nunc laoreet, vel lobortis nulla suscipit. Ut iaculis feugiat tincidunt. Vestibulum ut pharetra enim, vel pellentesque leo. Pellentesque sit amet rutrum mauris. Nullam ultricies augue id est interdum, sit amet consectetur eros eleifend. + +Aliquam ac pretium arcu, quis viverra mi. Mauris tincidunt tincidunt libero, id aliquam ipsum scelerisque quis. Donec vitae purus et eros dapibus pulvinar. Interdum et malesuada fames ac ante ipsum primis in faucibus. Duis efficitur tempus tortor, et sodales augue ultricies sed. Phasellus nec finibus lacus, in aliquet turpis. Maecenas id turpis augue. Nunc finibus turpis purus, aliquam tempor magna ullamcorper ut. Morbi sit amet erat gravida, egestas metus vel, porttitor diam. diff --git a/static/files/pb071/bonuses/08/test-counting/lorem_some.out b/static/files/pb071/bonuses/08/test-counting/lorem_some.out new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/lorem_some.out @@ -0,0 +1 @@ +7 diff --git a/static/files/pb071/bonuses/08/test-counting/mmap.in b/static/files/pb071/bonuses/08/test-counting/mmap.in new file mode 100644 index 0000000..8cedbc2 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/mmap.in @@ -0,0 +1,264 @@ +MMAP(3P) POSIX Programmer's Manual MMAP(3P) + +PROLOG + This manual page is part of the POSIX Programmer's Manual. The Linux implementation of this interface may differ (consult the corresponding Linux manual page for details of Linux behavior), or the interface may not be imple‐ + mented on Linux. + +NAME + mmap — map pages of memory + +SYNOPSIS + #include + + void *mmap(void *addr, size_t len, int prot, int flags, + int fildes, off_t off); + +DESCRIPTION + The mmap() function shall establish a mapping between an address space of a process and a memory object. + + The mmap() function shall be supported for the following memory objects: + + * Regular files + + * Shared memory objects + + * Typed memory objects + + Support for any other type of file is unspecified. + + The format of the call is as follows: + + pa=mmap(addr, len, prot, flags, fildes, off); + + The mmap() function shall establish a mapping between the address space of the process at an address pa for len bytes to the memory object represented by the file descriptor fildes at offset off for len bytes. The value of pa + is an implementation-defined function of the parameter addr and the values of flags, further described below. A successful mmap() call shall return pa as its result. The address range starting at pa and continuing for len + bytes shall be legitimate for the possible (not necessarily current) address space of the process. The range of bytes starting at off and continuing for len bytes shall be legitimate for the possible (not necessarily current) + offsets in the memory object represented by fildes. + + If fildes represents a typed memory object opened with either the POSIX_TYPED_MEM_ALLOCATE flag or the POSIX_TYPED_MEM_ALLOCATE_CONTIG flag, the memory object to be mapped shall be that portion of the typed memory object al‐ + located by the implementation as specified below. In this case, if off is non-zero, the behavior of mmap() is undefined. If fildes refers to a valid typed memory object that is not accessible from the calling process, mmap() + shall fail. + + The mapping established by mmap() shall replace any previous mappings for those whole pages containing any part of the address space of the process starting at pa and continuing for len bytes. + + If the size of the mapped file changes after the call to mmap() as a result of some other operation on the mapped file, the effect of references to portions of the mapped region that correspond to added or removed portions of + the file is unspecified. + + If len is zero, mmap() shall fail and no mapping shall be established. + + The parameter prot determines whether read, write, execute, or some combination of accesses are permitted to the data being mapped. The prot shall be either PROT_NONE or the bitwise-inclusive OR of one or more of the other + flags in the following table, defined in the header. + + ┌──────────────────┬──────────────────────────┐ + │Symbolic Constant │ Description │ + ├──────────────────┼──────────────────────────┤ + │PROT_READ │ Data can be read. │ + │PROT_WRITE │ Data can be written. │ + │PROT_EXEC │ Data can be executed. │ + │PROT_NONE │ Data cannot be accessed. │ + └──────────────────┴──────────────────────────┘ + If an implementation cannot support the combination of access types specified by prot, the call to mmap() shall fail. + + An implementation may permit accesses other than those specified by prot; however, the implementation shall not permit a write to succeed where PROT_WRITE has not been set and shall not permit any access where PROT_NONE alone + has been set. The implementation shall support at least the following values of prot: PROT_NONE, PROT_READ, PROT_WRITE, and the bitwise-inclusive OR of PROT_READ and PROT_WRITE. The file descriptor fildes shall have been + opened with read permission, regardless of the protection options specified. If PROT_WRITE is specified, the application shall ensure that it has opened the file descriptor fildes with write permission unless MAP_PRIVATE is + specified in the flags parameter as described below. + + The parameter flags provides other information about the handling of the mapped data. The value of flags is the bitwise-inclusive OR of these options, defined in : + + ┌──────────────────┬─────────────────────────┐ + │Symbolic Constant │ Description │ + ├──────────────────┼─────────────────────────┤ + │MAP_SHARED │ Changes are shared. │ + │MAP_PRIVATE │ Changes are private. │ + │MAP_FIXED │ Interpret addr exactly. │ + └──────────────────┴─────────────────────────┘ + It is implementation-defined whether MAP_FIXED shall be supported. MAP_FIXED shall be supported on XSI-conformant systems. + + MAP_SHARED and MAP_PRIVATE describe the disposition of write references to the memory object. If MAP_SHARED is specified, write references shall change the underlying object. If MAP_PRIVATE is specified, modifications to the + mapped data by the calling process shall be visible only to the calling process and shall not change the underlying object. It is unspecified whether modifications to the underlying object done after the MAP_PRIVATE mapping + is established are visible through the MAP_PRIVATE mapping. Either MAP_SHARED or MAP_PRIVATE can be specified, but not both. The mapping type is retained across fork(). + + The state of synchronization objects such as mutexes, semaphores, barriers, and conditional variables placed in shared memory mapped with MAP_SHARED becomes undefined when the last region in any process containing the syn‐ + chronization object is unmapped. + + When fildes represents a typed memory object opened with either the POSIX_TYPED_MEM_ALLOCATE flag or the POSIX_TYPED_MEM_ALLOCATE_CONTIG flag, mmap() shall, if there are enough resources available, map len bytes allocated + from the corresponding typed memory object which were not previously allocated to any process in any processor that may access that typed memory object. If there are not enough resources available, the function shall fail. If + fildes represents a typed memory object opened with the POSIX_TYPED_MEM_ALLOCATE_CONTIG flag, these allocated bytes shall be contiguous within the typed memory object. If fildes represents a typed memory object opened with + the POSIX_TYPED_MEM_ALLOCATE flag, these allocated bytes may be composed of non-contiguous fragments within the typed memory object. If fildes represents a typed memory object opened with neither the POSIX_TYPED_MEM_ALLO‐ + CATE_CONTIG flag nor the POSIX_TYPED_MEM_ALLOCATE flag, len bytes starting at offset off within the typed memory object are mapped, exactly as when mapping a file or shared memory object. In this case, if two processes map an + area of typed memory using the same off and len values and using file descriptors that refer to the same memory pool (either from the same port or from a different port), both processes shall map the same region of storage. + + When MAP_FIXED is set in the flags argument, the implementation is informed that the value of pa shall be addr, exactly. If MAP_FIXED is set, mmap() may return MAP_FAILED and set errno to [EINVAL]. If a MAP_FIXED request is + successful, then any previous mappings or memory locks for those whole pages containing any part of the address range [pa,pa+len) shall be removed, as if by an appropriate call to munmap(), before the new mapping is estab‐ + lished. + + When MAP_FIXED is not set, the implementation uses addr in an implementation-defined manner to arrive at pa. The pa so chosen shall be an area of the address space that the implementation deems suitable for a mapping of len + bytes to the file. All implementations interpret an addr value of 0 as granting the implementation complete freedom in selecting pa, subject to constraints described below. A non-zero value of addr is taken to be a suggestion + of a process address near which the mapping should be placed. When the implementation selects a value for pa, it never places a mapping at address 0, nor does it replace any extant mapping. + + If MAP_FIXED is specified and addr is non-zero, it shall have the same remainder as the off parameter, modulo the page size as returned by sysconf() when passed _SC_PAGESIZE or _SC_PAGE_SIZE. The implementation may require + that off is a multiple of the page size. If MAP_FIXED is specified, the implementation may require that addr is a multiple of the page size. The system performs mapping operations over whole pages. Thus, while the parameter + len need not meet a size or alignment constraint, the system shall include, in any mapping operation, any partial page specified by the address range starting at pa and continuing for len bytes. + + The system shall always zero-fill any partial page at the end of an object. Further, the system shall never write out any modified portions of the last page of an object which are beyond its end. References within the ad‐ + dress range starting at pa and continuing for len bytes to whole pages following the end of an object shall result in delivery of a SIGBUS signal. + + An implementation may generate SIGBUS signals when a reference would cause an error in the mapped object, such as out-of-space condition. + + The mmap() function shall add an extra reference to the file associated with the file descriptor fildes which is not removed by a subsequent close() on that file descriptor. This reference shall be removed when there are no + more mappings to the file. + + The last data access timestamp of the mapped file may be marked for update at any time between the mmap() call and the corresponding munmap() call. The initial read or write reference to a mapped region shall cause the file's + last data access timestamp to be marked for update if it has not already been marked for update. + + The last data modification and last file status change timestamps of a file that is mapped with MAP_SHARED and PROT_WRITE shall be marked for update at some point in the interval between a write reference to the mapped region + and the next call to msync() with MS_ASYNC or MS_SYNC for that portion of the file by any process. If there is no such call and if the underlying file is modified as a result of a write reference, then these timestamps shall + be marked for update at some time after the write reference. + + There may be implementation-defined limits on the number of memory regions that can be mapped (per process or per system). + + If such a limit is imposed, whether the number of memory regions that can be mapped by a process is decreased by the use of shmat() is implementation-defined. + + If mmap() fails for reasons other than [EBADF], [EINVAL], or [ENOTSUP], some of the mappings in the address range starting at addr and continuing for len bytes may have been unmapped. + +RETURN VALUE + Upon successful completion, the mmap() function shall return the address at which the mapping was placed (pa); otherwise, it shall return a value of MAP_FAILED and set errno to indicate the error. The symbol MAP_FAILED is de‐ + fined in the header. No successful return from mmap() shall return the value MAP_FAILED. + +ERRORS + The mmap() function shall fail if: + + EACCES The fildes argument is not open for read, regardless of the protection specified, or fildes is not open for write and PROT_WRITE was specified for a MAP_SHARED type mapping. + + EAGAIN The mapping could not be locked in memory, if required by mlockall(), due to a lack of resources. + + EBADF The fildes argument is not a valid open file descriptor. + + EINVAL The value of len is zero. + + EINVAL The value of flags is invalid (neither MAP_PRIVATE nor MAP_SHARED is set). + + EMFILE The number of mapped regions would exceed an implementation-defined limit (per process or per system). + + ENODEV The fildes argument refers to a file whose type is not supported by mmap(). + + ENOMEM MAP_FIXED was specified, and the range [addr,addr+len) exceeds that allowed for the address space of a process; or, if MAP_FIXED was not specified and there is insufficient room in the address space to effect the map‐ + ping. + + ENOMEM The mapping could not be locked in memory, if required by mlockall(), because it would require more space than the system is able to supply. + + ENOMEM Not enough unallocated memory resources remain in the typed memory object designated by fildes to allocate len bytes. + + ENOTSUP + MAP_FIXED or MAP_PRIVATE was specified in the flags argument and the implementation does not support this functionality. + + The implementation does not support the combination of accesses requested in the prot argument. + + ENXIO Addresses in the range [off,off+len) are invalid for the object specified by fildes. + + ENXIO MAP_FIXED was specified in flags and the combination of addr, len, and off is invalid for the object specified by fildes. + + ENXIO The fildes argument refers to a typed memory object that is not accessible from the calling process. + + EOVERFLOW + The file is a regular file and the value of off plus len exceeds the offset maximum established in the open file description associated with fildes. + + The mmap() function may fail if: + + EINVAL The addr argument (if MAP_FIXED was specified) or off is not a multiple of the page size as returned by sysconf(), or is considered invalid by the implementation. + + The following sections are informative. + +EXAMPLES + None. + +APPLICATION USAGE + Use of mmap() may reduce the amount of memory available to other memory allocation functions. + + Use of MAP_FIXED may result in unspecified behavior in further use of malloc() and shmat(). The use of MAP_FIXED is discouraged, as it may prevent an implementation from making the most effective use of resources. Most im‐ + plementations require that off and addr are multiples of the page size as returned by sysconf(). + + The application must ensure correct synchronization when using mmap() in conjunction with any other file access method, such as read() and write(), standard input/output, and shmat(). + + The mmap() function allows access to resources via address space manipulations, instead of read()/write(). Once a file is mapped, all a process has to do to access it is use the data at the address to which the file was + mapped. So, using pseudo-code to illustrate the way in which an existing program might be changed to use mmap(), the following: + + fildes = open(...) + lseek(fildes, some_offset) + read(fildes, buf, len) + /* Use data in buf. */ + + becomes: + + fildes = open(...) + address = mmap(0, len, PROT_READ, MAP_PRIVATE, fildes, some_offset) + /* Use data at address. */ + +RATIONALE + After considering several other alternatives, it was decided to adopt the mmap() definition found in SVR4 for mapping memory objects into process address spaces. The SVR4 definition is minimal, in that it describes only what + has been built, and what appears to be necessary for a general and portable mapping facility. + + Note that while mmap() was first designed for mapping files, it is actually a general-purpose mapping facility. It can be used to map any appropriate object, such as memory, files, devices, and so on, into the address space + of a process. + + When a mapping is established, it is possible that the implementation may need to map more than is requested into the address space of the process because of hardware requirements. An application, however, cannot count on + this behavior. Implementations that do not use a paged architecture may simply allocate a common memory region and return the address of it; such implementations probably do not allocate any more than is necessary. References + past the end of the requested area are unspecified. + + If an application requests a mapping that overlaps existing mappings in the process, it might be desirable that an implementation detect this and inform the application. However, if the program specifies a fixed address map‐ + ping (which requires some implementation knowledge to determine a suitable address, if the function is supported at all), then the program is presumed to be successfully managing its own address space and should be trusted + when it asks to map over existing data structures. Furthermore, it is also desirable to make as few system calls as possible, and it might be considered onerous to require an munmap() before an mmap() to the same address + range. This volume of POSIX.1‐2017 specifies that the new mapping replaces any existing mappings (implying an automatic munmap() on the address range), following existing practice in this regard. The standard developers also + considered whether there should be a way for new mappings to overlay existing mappings, but found no existing practice for this. + + It is not expected that all hardware implementations are able to support all combinations of permissions at all addresses. Implementations are required to disallow write access to mappings without write permission and to + disallow access to mappings without any access permission. Other than these restrictions, implementations may allow access types other than those requested by the application. For example, if the application requests only + PROT_WRITE, the implementation may also allow read access. A call to mmap() fails if the implementation cannot support allowing all the access requested by the application. For example, some implementations cannot support a + request for both write access and execute access simultaneously. All implementations must support requests for no access, read access, write access, and both read and write access. Strictly conforming code must only rely on + the required checks. These restrictions allow for portability across a wide range of hardware. + + The MAP_FIXED address treatment is likely to fail for non-page-aligned values and for certain architecture-dependent address ranges. Conforming implementations cannot count on being able to choose address values for + MAP_FIXED without utilizing non-portable, implementation-defined knowledge. Nonetheless, MAP_FIXED is provided as a standard interface conforming to existing practice for utilizing such knowledge when it is available. + + Similarly, in order to allow implementations that do not support virtual addresses, support for directly specifying any mapping addresses via MAP_FIXED is not required and thus a conforming application may not count on it. + + The MAP_PRIVATE function can be implemented efficiently when memory protection hardware is available. When such hardware is not available, implementations can implement such ``mappings'' by simply making a real copy of the + relevant data into process private memory, though this tends to behave similarly to read(). + + The function has been defined to allow for many different models of using shared memory. However, all uses are not equally portable across all machine architectures. In particular, the mmap() function allows the system as + well as the application to specify the address at which to map a specific region of a memory object. The most portable way to use the function is always to let the system choose the address, specifying NULL as the value for + the argument addr and not to specify MAP_FIXED. + + If it is intended that a particular region of a memory object be mapped at the same address in a group of processes (on machines where this is even possible), then MAP_FIXED can be used to pass in the desired mapping address. + The system can still be used to choose the desired address if the first such mapping is made without specifying MAP_FIXED, and then the resulting mapping address can be passed to subsequent processes for them to pass in via + MAP_FIXED. The availability of a specific address range cannot be guaranteed, in general. + + The mmap() function can be used to map a region of memory that is larger than the current size of the object. Memory access within the mapping but beyond the current end of the underlying objects may result in SIGBUS signals + being sent to the process. The reason for this is that the size of the object can be manipulated by other processes and can change at any moment. The implementation should tell the application that a memory reference is out‐ + side the object where this can be detected; otherwise, written data may be lost and read data may not reflect actual data in the object. + + Note that references beyond the end of the object do not extend the object as the new end cannot be determined precisely by most virtual memory hardware. Instead, the size can be directly manipulated by ftruncate(). + + Process memory locking does apply to shared memory regions, and the MCL_FUTURE argument to mlockall() can be relied upon to cause new shared memory regions to be automatically locked. + + Existing implementations of mmap() return the value -1 when unsuccessful. Since the casting of this value to type void * cannot be guaranteed by the ISO C standard to be distinct from a successful value, this volume of + POSIX.1‐2017 defines the symbol MAP_FAILED, which a conforming implementation does not return as the result of a successful call. + +FUTURE DIRECTIONS + None. + +SEE ALSO + exec, fcntl(), fork(), lockf(), msync(), munmap(), mprotect(), posix_typed_mem_open(), shmat(), sysconf() + + The Base Definitions volume of POSIX.1‐2017, + +COPYRIGHT + Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1-2017, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, + 2018 Edition, Copyright (C) 2018 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the + original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html . + + Any typographical or formatting errors that appear in this page are most likely to have been introduced during the conversion of the source files to man page format. To report such errors, see https://www.kernel.org/doc/man- + pages/reporting_bugs.html . + +IEEE/The Open Group 2017 MMAP(3P) diff --git a/static/files/pb071/bonuses/08/test-counting/mmap.json b/static/files/pb071/bonuses/08/test-counting/mmap.json new file mode 100644 index 0000000..d1f9b2e --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/mmap.json @@ -0,0 +1,4 @@ +{ + "args": ["{test_case}.in", "{test_case}.out_produced", "mmap"], + "specialized_test": ["diff", "{test_case}.out", "{test_case}.out_produced"] +} diff --git a/static/files/pb071/bonuses/08/test-counting/mmap.out b/static/files/pb071/bonuses/08/test-counting/mmap.out new file mode 100644 index 0000000..e522732 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/mmap.out @@ -0,0 +1 @@ +38 diff --git a/static/files/pb071/bonuses/08/test-counting/never_enough_random.in b/static/files/pb071/bonuses/08/test-counting/never_enough_random.in new file mode 100644 index 0000000..4d4d905 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/never_enough_random.in @@ -0,0 +1 @@ +Quisquam ananas quisquam dolor voluptatem quaerat ananas ipsum consectetur. ananasPorro quisquam est quisquam. Adipisci quaerat ananas ut voluptatem ut amet. Tempora ut non non. Tempora magnam porro nananason. Velit ananas ipsum numquam voluptatem magnananasam ananas ut consectetur magnam. Numquam sit ananas ipsum eius. Quiquia ananas amet labore consectetur ananas magnam. Est aliquam dolore numquam ananas diff --git a/static/files/pb071/bonuses/08/test-counting/never_enough_random.out b/static/files/pb071/bonuses/08/test-counting/never_enough_random.out new file mode 100644 index 0000000..48082f7 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/never_enough_random.out @@ -0,0 +1 @@ +12 diff --git a/static/files/pb071/bonuses/08/test-counting/nothing_to_see.in b/static/files/pb071/bonuses/08/test-counting/nothing_to_see.in new file mode 100644 index 0000000..8d41d9c --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/nothing_to_see.in @@ -0,0 +1 @@ +Ipsum consectetur aliquam ut sit quiquia. Numquam labore quiquia tempora labore magnam aliquam. Neque eius magnam eius adipisci labore numquam magnam. Quaerat numquam tempora labore. Eius quaerat est porro amet ut. Etincidunt etincidunt dolor labore adipisci. Etincidunt quiquia voluptatem numquam quiquia ut voluptatem neque. Velit dolor quiquia est. Quiquia dolor sed est quisquam quisquam. Est porro quiquia tempora numquam ipsum consectetur non. Dolore porro magnam dolorem dolore dolor ipsum. Aliquam quiquia quiquia modi quisquam eius. Dolorem tempora adipisci ut dolor dolorem. Sit quaerat ut est aliquam modi magnam. Eius dolore diff --git a/static/files/pb071/bonuses/08/test-counting/nothing_to_see.out b/static/files/pb071/bonuses/08/test-counting/nothing_to_see.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/nothing_to_see.out @@ -0,0 +1 @@ +0 diff --git a/static/files/pb071/bonuses/08/test-counting/random.in b/static/files/pb071/bonuses/08/test-counting/random.in new file mode 100644 index 0000000..560d738 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/random.in @@ -0,0 +1 @@ +Quiquia est dolore quisquam. Magnam voluptatem dolorem dolor quaerat sed. Est labore eius etincidunt. Dolore neque magnam quisquam. Labore amet velit ipsum dolorem quaerat sed modi. Numquam labore quaerat non dolor quaerat dolore. Magnam dolore porro amet porro. Dolorem quiquia adipisci dolor dolore numquam porro dolorem. Velit sit numquam sit. Modi tempora ut dolor numquam. Numquam porro eius quaerat ut. Amet sit eius etincidunt ipsum ipsum. diff --git a/static/files/pb071/bonuses/08/test-counting/random.out b/static/files/pb071/bonuses/08/test-counting/random.out new file mode 100644 index 0000000..573541a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/random.out @@ -0,0 +1 @@ +0 diff --git a/static/files/pb071/bonuses/08/test-counting/random_again.in b/static/files/pb071/bonuses/08/test-counting/random_again.in new file mode 100644 index 0000000..42357f1 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/random_again.in @@ -0,0 +1 @@ +Eius dolore est ipsum neque. Tempoananasra dolorem est labore ananas aliquam neque consectetur ananas dolor. Ut sed aliquam ut. Ut consectetur quiquia modi eius ananas eius. Dolore sed maananasgnam etincidunt quisquam dolor. Quaerat etincidunt aliquam etincidunt dolor ananas consectetur quaerat. Numquam ananas amet numquam esananast dolorem ananasconsectetur quisquam neque. Quisquam voluptatem consectetur non modi adipisci labore quisquam. Quiquia porro nananaseque sed magnam sed magnam porro. ananas Aliquam amet quaerat dolore quaerat. Numquam porro magnam ipsum etincidunt adipisci quisquam adipisci. diff --git a/static/files/pb071/bonuses/08/test-counting/random_again.out b/static/files/pb071/bonuses/08/test-counting/random_again.out new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/random_again.out @@ -0,0 +1 @@ +11 diff --git a/static/files/pb071/bonuses/08/test-counting/stream.json b/static/files/pb071/bonuses/08/test-counting/stream.json new file mode 100644 index 0000000..d66ee7a --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/stream.json @@ -0,0 +1,4 @@ +{ + "args": ["test-counting/fgetc.in", "{test_case}.out_produced", "stream"], + "specialized_test": ["diff", "{test_case}.out", "{test_case}.out_produced"] +} diff --git a/static/files/pb071/bonuses/08/test-counting/stream.out b/static/files/pb071/bonuses/08/test-counting/stream.out new file mode 100644 index 0000000..f599e28 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/stream.out @@ -0,0 +1 @@ +10 diff --git a/static/files/pb071/bonuses/08/test-counting/tough.in b/static/files/pb071/bonuses/08/test-counting/tough.in new file mode 100644 index 0000000..aa87532 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/tough.in @@ -0,0 +1 @@ +anananas diff --git a/static/files/pb071/bonuses/08/test-counting/tough.out b/static/files/pb071/bonuses/08/test-counting/tough.out new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/tough.out @@ -0,0 +1 @@ +1 diff --git a/static/files/pb071/bonuses/08/test-counting/tricky.in b/static/files/pb071/bonuses/08/test-counting/tricky.in new file mode 100644 index 0000000..7109bc1 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/tricky.in @@ -0,0 +1 @@ +nananananananananananas aaaaaaaaaaaaaaaaaaaaaaaaaaananas ananassssssssssssssssssssss diff --git a/static/files/pb071/bonuses/08/test-counting/tricky.out b/static/files/pb071/bonuses/08/test-counting/tricky.out new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/static/files/pb071/bonuses/08/test-counting/tricky.out @@ -0,0 +1 @@ +3 diff --git a/static/files/pb071/bonuses/08/test-trees/aligned.in b/static/files/pb071/bonuses/08/test-trees/aligned.in new file mode 100644 index 0000000..59fdb42 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/aligned.in @@ -0,0 +1,9 @@ +4;3 +2;2 +0;1 +-1;0 +1;0 +3;0 +6;1 +5;0 +7;0 diff --git a/static/files/pb071/bonuses/08/test-trees/close_call_but_not_exactly.in b/static/files/pb071/bonuses/08/test-trees/close_call_but_not_exactly.in new file mode 100644 index 0000000..73dc702 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/close_call_but_not_exactly.in @@ -0,0 +1,15 @@ +5;4 +3;2 +2;1 +1;0 +nil +4;0 +8;3 +6;1 +nil +7;0 +12;2 +10;1 +9;0 +11;0 +13;0 diff --git a/static/files/pb071/bonuses/08/test-trees/could_be_coloured.in b/static/files/pb071/bonuses/08/test-trees/could_be_coloured.in new file mode 100644 index 0000000..eaf6d17 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/could_be_coloured.in @@ -0,0 +1,11 @@ +13;3 +8;2 +1;1 +nil +6;0 +11;0 +17;2 +15;0 +25;1 +22;0 +27;0 diff --git a/static/files/pb071/bonuses/08/test-trees/example.in b/static/files/pb071/bonuses/08/test-trees/example.in new file mode 100644 index 0000000..bca1aad --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/example.in @@ -0,0 +1,15 @@ +8;4 +5;3 +3;2 +2;1 +1;0 +nil +4;0 +7;1 +6;0 +nil +11;2 +10;1 +9;0 +nil +12;0 diff --git a/static/files/pb071/bonuses/08/test-trees/is_coloured_in_a_sense_but_not_brother_to_the_others.in b/static/files/pb071/bonuses/08/test-trees/is_coloured_in_a_sense_but_not_brother_to_the_others.in new file mode 100644 index 0000000..e4bc795 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/is_coloured_in_a_sense_but_not_brother_to_the_others.in @@ -0,0 +1,11 @@ +13;1 +8;1 +1;0 +nil +6;0 +11;0 +17;1 +15;0 +25;0 +22;0 +27;0 diff --git a/static/files/pb071/bonuses/08/test-trees/no_tree.in b/static/files/pb071/bonuses/08/test-trees/no_tree.in new file mode 100644 index 0000000..e69de29 diff --git a/static/files/pb071/bonuses/08/test-trees/no_tree_again.in b/static/files/pb071/bonuses/08/test-trees/no_tree_again.in new file mode 100644 index 0000000..607602c --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/no_tree_again.in @@ -0,0 +1 @@ +nil diff --git a/static/files/pb071/bonuses/08/test-trees/only_root.in b/static/files/pb071/bonuses/08/test-trees/only_root.in new file mode 100644 index 0000000..42a3478 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/only_root.in @@ -0,0 +1 @@ +8;0 diff --git a/static/files/pb071/bonuses/08/test-trees/pretty_tree.in b/static/files/pb071/bonuses/08/test-trees/pretty_tree.in new file mode 100644 index 0000000..33ca88d --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/pretty_tree.in @@ -0,0 +1,3 @@ +10;1 +9;0 +11;0 diff --git a/static/files/pb071/bonuses/08/test-trees/two_nodes.in b/static/files/pb071/bonuses/08/test-trees/two_nodes.in new file mode 100644 index 0000000..6c4fe19 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/two_nodes.in @@ -0,0 +1,3 @@ +4;1 +3;0 +nil diff --git a/static/files/pb071/bonuses/08/test-trees/two_nodes_other_way.in b/static/files/pb071/bonuses/08/test-trees/two_nodes_other_way.in new file mode 100644 index 0000000..ff17256 --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/two_nodes_other_way.in @@ -0,0 +1,3 @@ +4;1 +nil +5;0 diff --git a/static/files/pb071/bonuses/08/test-trees/whats_this.in b/static/files/pb071/bonuses/08/test-trees/whats_this.in new file mode 100644 index 0000000..656f4ec --- /dev/null +++ b/static/files/pb071/bonuses/08/test-trees/whats_this.in @@ -0,0 +1,7 @@ +42;2 +11;1 +nil +33;0 +314;1 +171;0 +981;0 diff --git a/static/files/pb071/bonuses/08/tree.png b/static/files/pb071/bonuses/08/tree.png new file mode 100644 index 0000000..47f96d6 Binary files /dev/null and b/static/files/pb071/bonuses/08/tree.png differ diff --git a/static/files/pb071/bonuses/08/trees.c b/static/files/pb071/bonuses/08/trees.c new file mode 100644 index 0000000..443fe30 --- /dev/null +++ b/static/files/pb071/bonuses/08/trees.c @@ -0,0 +1,85 @@ +#include +#include + +#define UNUSED(x) ((void) (x)) + +struct node +{ + int key; + int rank; + + struct node *left; + struct node *right; +}; + +struct tree +{ + struct node *root; +}; + +/** + * @brief Creates new dynamically allocated node. + * @param key Key that node holds. + * @param rank Rank that node has. + * @returns Pointer to dynamically allocated node, NULL if allocation fails. + */ +struct node * +create_node(int key, int rank) +{ + struct node *new_node = calloc(1, sizeof(struct node)); + if (new_node == NULL) { + fprintf(stderr, "create_node: Cannot allocate memory for node.\n"); + return NULL; + } + + new_node->key = key; + new_node->rank = rank; + return new_node; +} + +/** + * @brief Recursively frees node and its subtrees. + * @param node Root of the subtree to be freed. + */ +void free_node(struct node *node) +{ + if (node == NULL) { + return; + } + + free_node(node->left); + free_node(node->right); + free(node); +} + +/** + * @brief Prettyprints given tree into the file. + * @param file File for output. + * @param tree Tree to be prettyprinted. + */ +void pretty_print_tree(FILE *file, const struct tree *tree) +{ + UNUSED(file); + UNUSED(tree); +} + +/** + * @brief Loads tree from a file and returns root of it. + * @param file File where the tree is saved. + * @returns Pointer to the loaded tree, NULL if error happens or no tree is in file. + */ +struct node *load_tree(FILE *file) +{ + UNUSED(file); +} + +int main(int argc, char **argv) +{ + if (argc < 2 || argc > 3) { + printf("Usage: %s [output-file]\n", argv[0]); + return 1; + } + + /* TODO */ + return 0; +} diff --git a/static/files/pb071/bonuses/10/CMakeLists.txt b/static/files/pb071/bonuses/10/CMakeLists.txt new file mode 100644 index 0000000..161ab80 --- /dev/null +++ b/static/files/pb071/bonuses/10/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.0) + +# Project configuration +project(seminar10-bonus) +set(SOURCES hangman.c main.c) + +# Executable +add_executable(hangman hangman.c main.c) +add_executable(test_hangman test_hangman.c hangman.c) + +# Configure compiler warnings +if (CMAKE_C_COMPILER_ID MATCHES Clang OR ${CMAKE_C_COMPILER_ID} STREQUAL GNU) + # using regular Clang, AppleClang or GCC + # Strongly suggested: neable -Werror + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu11 -Wall -Wextra -pedantic") +elseif (${CMAKE_C_COMPILER_ID} STREQUAL MSVC) + # using Visual Studio C++ + target_compile_definitions(${EXECUTABLE} PRIVATE _CRT_SECURE_NO_DEPRECATE) + set(CMAKE_CXX_FLAGS "/permissive- /W4 /EHsc") +endif() + +if(MINGW) + target_compile_definitions(${EXECUTABLE} PRIVATE __USE_MINGW_ANSI_STDIO=1) +endif() diff --git a/static/files/pb071/bonuses/10/Makefile b/static/files/pb071/bonuses/10/Makefile new file mode 100644 index 0000000..507c644 --- /dev/null +++ b/static/files/pb071/bonuses/10/Makefile @@ -0,0 +1,11 @@ +check: check-unit check-functional + +check-unit: + build/test_hangman + +check-functional: + python3 test-bonus.py test hangman + python3 test-bonus.py test hangman --no-global-config + +clean: + rm -rf test-*/*.out_produced diff --git a/static/files/pb071/bonuses/10/hangman.c b/static/files/pb071/bonuses/10/hangman.c new file mode 100644 index 0000000..25ac845 --- /dev/null +++ b/static/files/pb071/bonuses/10/hangman.c @@ -0,0 +1,233 @@ +#include "hangman.h" + +#include +#include +#include +#include +#include +#include + +#define MAX_LENGTH 50 +#define ALPHABET_LENGTH 27 + +int get_word(const char *wordlist, char secret[]) +{ + FILE *fp = fopen(wordlist, "rb"); + if (fp == NULL) { + fprintf(stderr, "No such file or directory: %s\n", wordlist); + return 1; + } + + struct stat st; + stat(wordlist, &st); + long int size = st.st_size; + + /* FIXME: Can fall into infinite loop... */ + do { + long int random = (rand() % size) + 1; + + fseek(fp, random, SEEK_SET); + + int result = fscanf(fp, "%*s %20s", secret); + if (result != EOF) + break; + } while (1); + + fclose(fp); + + return 0; +} + +static void print_word(const char *word) +{ + for (size_t i = 0; word[i]; i++) { + printf(" %c", word[i]); + } + printf("\n"); +} + +bool word_guessed(const char secret[], const char letters_guessed[]) +{ + size_t l = strlen(secret), k=0; + + for (size_t j = 0; letters_guessed[j]; j++) { + for (size_t i = 0; secret[i]; i++) { + if (secret[i] == letters_guessed[j]) { + k++; + } + } + } + + return l <= k; +} + +void censor_word(const char secret[], const char letters_guessed[], char guessed_word[]) +{ + size_t i; + for (i = 0; secret[i]; i++, guessed_word++) { + *guessed_word = secret[i]; + + bool guessed = false; + for (int j = 0; letters_guessed[j]; j++) { + if (secret[i] == letters_guessed[j]) { + guessed = true; + } + } + + if (!guessed) { + *guessed_word = '_'; + } + } + + *guessed_word = '\0'; +} + +void get_available_letters(const char letters_guessed[], + char available_letters[]) +{ + size_t k = 0; + + for (char letter = 'a'; letter <= 'z'; letter++) { + bool to_be_put = true; + + for (size_t j = 0; letters_guessed[j]; j++) { + if (letters_guessed[j] == letter) { + to_be_put = false; + break; + } + } + + if (to_be_put) { + available_letters[k++] = letter; + } + } + available_letters[k] = '\0'; +} + +static bool been_already_guessed(const char *guessed_letters, + const char letter) +{ + for (size_t i = 0; guessed_letters[i]; i++) { + if (guessed_letters[i] == letter) { + return true; + } + } + return false; +} + +static bool is_good_guess(const char secret[], char guessed_word[], const char letter) +{ + bool result = false; + for (size_t i = 0; secret[i]; i++) { + if (secret[i] == letter) { + result = true; + break; + } + } + + if (result) { + printf("Good guess:"); + } else { + printf("Oops! That letter is not in my word:"); + } + + print_word(guessed_word); + return result; +} + +static bool guessed_whole(const char *secret, const char *guess) +{ + for (size_t i = 0; secret[i]; i++) + if (tolower(guess[i]) != secret[i]) { + return false; + } + + return true; +} + +static int get_guess(char *guess) +{ + int result = scanf("%s", guess); + if (result == 1) { + *guess = tolower(*guess); + return result; + } + + int ch = 0; + fprintf(stderr, "Input was not successful.\n"); + while (ch != EOF && (ch = getchar()) != '\n') + ; + return result; +} + +void hangman(const char secret[]) +{ + printf("Welcome to the game, Hangman!\n"); + + size_t length_of_word = strlen(secret); + printf("I am thinking of a word that is %lu letters long.\n", + length_of_word); + + int guesses = 8, no_of_guessed_letters = 0; + char available_letters[ALPHABET_LENGTH], + guessed_letters[ALPHABET_LENGTH] = { 0 }; + char guess[MAX_LENGTH]; + char guessed_word[MAX_LENGTH] = { 0 }; + get_available_letters(guessed_letters, available_letters); + + while (guesses > 0) { + printf("-------------\n"); + if (word_guessed(secret, guessed_letters)) { + printf("Congratulations, you won!\n"); + return; + } + + printf("You have %d guesses left.\n", guesses); + printf("Available letters: %s\n", available_letters); + + printf("Please guess a letter: "); + + int read_status = get_guess(guess); + if (read_status == EOF) { + fprintf(stderr, "No more input to read.\n"); + return; + } else if (read_status == 0) { + continue; + } + + if (guess[1]) { + if (guessed_whole(secret, guess)) { + printf("Congratulations, you won!\n"); + } else { + printf("Sorry, bad guess. The word was %s.\n", secret); + } + } + + if (*guess < 'a' || *guess > 'z') { + printf("Oops! '%c' is not a valid letter:", *guess); + censor_word(secret, guessed_letters, guessed_word); + print_word(guessed_word); + continue; + } + + if (been_already_guessed(guessed_letters, *guess)) { + printf("Oops! You've already guessed that letter:"); + censor_word(secret, guessed_letters, guessed_word); + print_word(guessed_word); + continue; + } + + guessed_letters[no_of_guessed_letters++] = *guess; + get_available_letters(guessed_letters, available_letters); + censor_word(secret, guessed_letters, guessed_word); + + if (!is_good_guess(secret, guessed_word, *guess)) { + guesses--; + } + } + + if (guesses == 0) { + printf("-------------\n"); + printf("Sorry, you ran out of guesses. The word was %s.\n", secret); + } +} diff --git a/static/files/pb071/bonuses/10/hangman.h b/static/files/pb071/bonuses/10/hangman.h new file mode 100644 index 0000000..2a0b8e5 --- /dev/null +++ b/static/files/pb071/bonuses/10/hangman.h @@ -0,0 +1,55 @@ +#include + +#define WORDLIST_FILENAME "words.txt" + +/** + * Function detects, whether player guessed the secret word + * Based on the letters player used for guessing, this function detects, + * if it is possible to construct (and guess) the secret word from this set. + * If it is possible, function returns true. If not, returns false. + * @param secret the secret word lowercase + * @param letters_guessed the lowercase letters player already used in his guessing + * @return true, if word is guess; false otherwise. + */ +bool word_guessed(const char secret[], const char letters_guessed[]); + +/** + * Function returns string representing the guessed word + * This string contains visible letters, which were guessed successfuly + * by player at their correct positions. If there are still some hidden + * letters, the character '_' will be used for their representation. + * @param secret the secret word lowercase + * @param letters_guessed the lowercase letters player already used in his guessing + * @param guessed_word the constructed string as result of this function (output parameter) + */ +void censor_word(const char secret[], const char letters_guessed[], char guessed_word[]); + +/** + * Returns all letters, which were not used for guessing + * Function returns set of lowercase letters sorted in alphabetical order. This + * set will contain all letters from the alphabet, but it ommits those, which + * were already guessed. + * @param letters_guessed the lowercase letters player already used in his guessing + * @param available_letters set of lowercase not yet used letters + */ +void get_available_letters(const char letters_guessed[], char available_letters[]); + +/** + * Starts interactive hangman game + * + * @param secret the secret word lowercase + */ +void hangman(const char secret[]); + +/** + * Returns the random word + * Function opens the file with all the words and reads randomly one of them + * into the buffer pointed by secret. Word consists of lowercase letters. + * If there is some error with reading the file, 1 is returned. + * Don't forget to initialize the random numbers in your main() function will srand() call! + * Otherwise (everything is ok), 0 is returned. + * @param wordlist path to the file with words + * @param secret buffer, where random word will be read + * @return status code + */ +int get_word(const char *wordlist, char secret[]); diff --git a/static/files/pb071/bonuses/10/hangman.json b/static/files/pb071/bonuses/10/hangman.json new file mode 100644 index 0000000..03d783f --- /dev/null +++ b/static/files/pb071/bonuses/10/hangman.json @@ -0,0 +1,5 @@ +{ + "args": ["{test_case}.words"], + "has_stdin": true, + "capture_stdout": true +} diff --git a/static/files/pb071/bonuses/10/main.c b/static/files/pb071/bonuses/10/main.c new file mode 100644 index 0000000..50b1ee0 --- /dev/null +++ b/static/files/pb071/bonuses/10/main.c @@ -0,0 +1,23 @@ +#include +#include +#include + +#include "hangman.h" + +int main(int argc, char *argv[]) +{ + if (argc != 2) { + printf("Usage: %s path-to-wordlist\n", argv[0]); + return 1; + } + + char secret[50]; + + srand(time(NULL)); + if (get_word(argv[1], secret) != 0) { + return 1; + } + hangman(secret); + + return 0; +} diff --git a/static/files/pb071/bonuses/10/tdd_lifecycle.png b/static/files/pb071/bonuses/10/tdd_lifecycle.png new file mode 100644 index 0000000..e3668c1 Binary files /dev/null and b/static/files/pb071/bonuses/10/tdd_lifecycle.png differ diff --git a/static/files/pb071/bonuses/10/test-bonus.py b/static/files/pb071/bonuses/10/test-bonus.py new file mode 120000 index 0000000..98c2f91 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-bonus.py @@ -0,0 +1 @@ +../../test-bonus.py \ No newline at end of file diff --git a/static/files/pb071/bonuses/10/test-hangman/.gitignore b/static/files/pb071/bonuses/10/test-hangman/.gitignore new file mode 100644 index 0000000..bc39a05 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/.gitignore @@ -0,0 +1 @@ +!*.words diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once-bad.in b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.in new file mode 100644 index 0000000..9eefaad --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.in @@ -0,0 +1,2 @@ +o +word diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once-bad.out b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.out new file mode 100644 index 0000000..ccc82bd --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.out @@ -0,0 +1,10 @@ +Welcome to the game, Hangman! +I am thinking of a word that is 4 letters long. +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnopqrstuvwxyz +Please guess a letter: Good guess: _ o _ _ +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnpqrstuvwxyz +Please guess a letter: Sorry, bad guess. The word was goal. diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once-bad.words b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.words new file mode 100644 index 0000000..5d94f47 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once-bad.words @@ -0,0 +1,3 @@ +goal +goal +goal diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once.in b/static/files/pb071/bonuses/10/test-hangman/at-once.in new file mode 100644 index 0000000..191c7a4 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once.in @@ -0,0 +1,2 @@ +e +ball diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once.out b/static/files/pb071/bonuses/10/test-hangman/at-once.out new file mode 100644 index 0000000..75e84ac --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once.out @@ -0,0 +1,10 @@ +Welcome to the game, Hangman! +I am thinking of a word that is 4 letters long. +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ _ +------------- +You have 7 guesses left. +Available letters: abcdfghijklmnopqrstuvwxyz +Please guess a letter: Congratulations, you won! diff --git a/static/files/pb071/bonuses/10/test-hangman/at-once.words b/static/files/pb071/bonuses/10/test-hangman/at-once.words new file mode 100644 index 0000000..b109d45 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/at-once.words @@ -0,0 +1,3 @@ +ball +ball +ball diff --git a/static/files/pb071/bonuses/10/test-hangman/basic.in b/static/files/pb071/bonuses/10/test-hangman/basic.in new file mode 100644 index 0000000..63dc264 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/basic.in @@ -0,0 +1,16 @@ +l +e + +d + +a + +U + +u + +s + +p + +r diff --git a/static/files/pb071/bonuses/10/test-hangman/basic.out b/static/files/pb071/bonuses/10/test-hangman/basic.out new file mode 100644 index 0000000..a070bde --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/basic.out @@ -0,0 +1,40 @@ +Welcome to the game, Hangman! +I am thinking of a word that is 7 letters long. +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnopqrstuvwxyz +Please guess a letter: Good guess: _ _ _ _ l _ _ +------------- +You have 8 guesses left. +Available letters: abcdefghijkmnopqrstuvwxyz +Please guess a letter: Good guess: _ _ _ _ l e _ +------------- +You have 8 guesses left. +Available letters: abcdfghijkmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ _ l e _ +------------- +You have 7 guesses left. +Available letters: abcfghijkmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ _ l e _ +------------- +You have 6 guesses left. +Available letters: bcfghijkmnopqrstuvwxyz +Please guess a letter: Good guess: _ u _ _ l e _ +------------- +You have 6 guesses left. +Available letters: bcfghijkmnopqrstvwxyz +Please guess a letter: Oops! You've already guessed that letter: _ u _ _ l e _ +------------- +You have 6 guesses left. +Available letters: bcfghijkmnopqrstvwxyz +Please guess a letter: Good guess: _ u _ _ l e s +------------- +You have 6 guesses left. +Available letters: bcfghijkmnopqrtvwxyz +Please guess a letter: Good guess: p u _ p l e s +------------- +You have 6 guesses left. +Available letters: bcfghijkmnoqrtvwxyz +Please guess a letter: Good guess: p u r p l e s +------------- +Congratulations, you won! diff --git a/static/files/pb071/bonuses/10/test-hangman/basic.words b/static/files/pb071/bonuses/10/test-hangman/basic.words new file mode 100644 index 0000000..37554b5 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/basic.words @@ -0,0 +1,3 @@ +purples +purples +purples diff --git a/static/files/pb071/bonuses/10/test-hangman/hangman.in b/static/files/pb071/bonuses/10/test-hangman/hangman.in new file mode 100644 index 0000000..12abcbe --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/hangman.in @@ -0,0 +1,11 @@ +a + +e + +@ + +h + +N + +hangman diff --git a/static/files/pb071/bonuses/10/test-hangman/hangman.out b/static/files/pb071/bonuses/10/test-hangman/hangman.out new file mode 100644 index 0000000..c4f947d --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/hangman.out @@ -0,0 +1,26 @@ +Welcome to the game, Hangman! +I am thinking of a word that is 7 letters long. +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnopqrstuvwxyz +Please guess a letter: Good guess: _ a _ _ _ a _ +------------- +You have 8 guesses left. +Available letters: bcdefghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ a _ _ _ a _ +------------- +You have 7 guesses left. +Available letters: bcdfghijklmnopqrstuvwxyz +Please guess a letter: Oops! '@' is not a valid letter: _ a _ _ _ a _ +------------- +You have 7 guesses left. +Available letters: bcdfghijklmnopqrstuvwxyz +Please guess a letter: Good guess: h a _ _ _ a _ +------------- +You have 7 guesses left. +Available letters: bcdfgijklmnopqrstuvwxyz +Please guess a letter: Good guess: h a n _ _ a n +------------- +You have 7 guesses left. +Available letters: bcdfgijklmopqrstuvwxyz +Please guess a letter: Congratulations, you won! diff --git a/static/files/pb071/bonuses/10/test-hangman/hangman.words b/static/files/pb071/bonuses/10/test-hangman/hangman.words new file mode 100644 index 0000000..6fc78a1 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/hangman.words @@ -0,0 +1,3 @@ +hangman +hangman +hangman diff --git a/static/files/pb071/bonuses/10/test-hangman/no-more-tries.in b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.in new file mode 100644 index 0000000..7269e7b --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.in @@ -0,0 +1,11 @@ +a +e +b +c +q +w +p +l +m +x +z diff --git a/static/files/pb071/bonuses/10/test-hangman/no-more-tries.out b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.out new file mode 100644 index 0000000..a826d59 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.out @@ -0,0 +1,40 @@ +Welcome to the game, Hangman! +I am thinking of a word that is 10 letters long. +------------- +You have 8 guesses left. +Available letters: abcdefghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ _ _ _ _ _ _ _ +------------- +You have 7 guesses left. +Available letters: bcdefghijklmnopqrstuvwxyz +Please guess a letter: Good guess: _ _ _ e _ e _ _ e _ +------------- +You have 7 guesses left. +Available letters: bcdfghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 6 guesses left. +Available letters: cdfghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 5 guesses left. +Available letters: dfghijklmnopqrstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 4 guesses left. +Available letters: dfghijklmnoprstuvwxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 3 guesses left. +Available letters: dfghijklmnoprstuvxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 2 guesses left. +Available letters: dfghijklmnorstuvxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +You have 1 guesses left. +Available letters: dfghijkmnorstuvxyz +Please guess a letter: Oops! That letter is not in my word: _ _ _ e _ e _ _ e _ +------------- +Sorry, you ran out of guesses. The word was undeserved. diff --git a/static/files/pb071/bonuses/10/test-hangman/no-more-tries.words b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.words new file mode 100644 index 0000000..81d0515 --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/no-more-tries.words @@ -0,0 +1,3 @@ +undeserved +undeserved +undeserved diff --git a/static/files/pb071/bonuses/10/test-hangman/smoke.json b/static/files/pb071/bonuses/10/test-hangman/smoke.json new file mode 100644 index 0000000..daf4cab --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/smoke.json @@ -0,0 +1,4 @@ +{ + "args": [], + "capture_stdout": true +} diff --git a/static/files/pb071/bonuses/10/test-hangman/smoke.out b/static/files/pb071/bonuses/10/test-hangman/smoke.out new file mode 100644 index 0000000..283dd2b --- /dev/null +++ b/static/files/pb071/bonuses/10/test-hangman/smoke.out @@ -0,0 +1 @@ +Usage: build/hangman path-to-wordlist diff --git a/static/files/pb071/bonuses/10/test_hangman.c b/static/files/pb071/bonuses/10/test_hangman.c new file mode 100644 index 0000000..82642e4 --- /dev/null +++ b/static/files/pb071/bonuses/10/test_hangman.c @@ -0,0 +1,64 @@ +#include "hangman.h" + +#include +#include + +#define CUT_MAIN +#include "cut.h" + +TEST(word_guessed) +{ + SUBTEST(example_not_guessed) + { + CHECK(!word_guessed("secret", "aeiou")); + } + + SUBTEST(example_guessed) + { + CHECK(word_guessed("hi", "aeihoul")); + } + + SUBTEST(multiple_letters) + { + CHECK(word_guessed("baba", "ba")); + } +} + +TEST(censor_word) +{ + SUBTEST(example) + { + char result[30]; + censor_word("container", "arpstxgoieyu", result); + CHECK(strcmp(result, "_o_tai_er") == 0); + } + + SUBTEST(bigger_example) + { + char result[30]; + censor_word("underserved", "arpstxgoieyu", result); + CHECK(strcmp(result, "u__erser_e_") == 0); + } +} + +TEST(get_available_letters) +{ + SUBTEST(example) + { + char result[30]; + get_available_letters("arpstxgoieyu", result); + CHECK(strcmp(result, "bcdfhjklmnqvwz") == 0); + } + + SUBTEST(all) { + char result[30]; + get_available_letters("", result); + CHECK(strcmp(result, "abcdefghijklmnopqrstuvwxyz") == 0); + } + + SUBTEST(none) { + char result[30]; + get_available_letters("abcdefghijklmnopqrstuvwxyz", result); + CHECK(strcmp(result, "") == 0); + } +} diff --git a/static/files/pb071/test-bonus.py b/static/files/pb071/test-bonus.py new file mode 100644 index 0000000..d0eff34 --- /dev/null +++ b/static/files/pb071/test-bonus.py @@ -0,0 +1,156 @@ +#!/usr/bin/env python3 + +from typing import Iterable, List, Any +import click + +import glob +import json +import os +from pathlib import Path +import subprocess +import tempfile + + +@click.group() +def cli() -> None: + pass + + +class TestCase: + def __init__(self, target: str, test_case: str, config: Any = None): + self.target = target + self.test_case = test_case + + self.test_case_config_path = f"{test_case}.json" + self._config = config + + @property + def config(self): + if not self._config: + self._config = load_config(self.test_case_config_path) + + return self._config + + def __preprocess(self, arr: List[str]) -> Iterable[str]: + return map( + lambda e: e.format(target=self.target, test_case=self.test_case), arr + ) + + def check_stdio(self) -> bool: + if not self.config.get("capture_stdout"): + return True + + process = subprocess.run( + [ + "diff", + f"{self.test_case}.out", + f"{self.test_case}.out_produced", + ], + capture_output=True, + ) + if process.returncode == 0: + return True + + click.secho( + f" [FAIL] Output differs from the expected\n\n{process.stdout.decode()}", fg="yellow" + ) + return False + + def check_specialized_test(self) -> bool: + manual_test = self.config.get("specialized_test") + if not manual_test: + return True + + process = subprocess.run(self.__preprocess(manual_test), capture_output=True) + if process.returncode == 0: + return True + + click.secho( + f" [FAIL] Specialized test failed\n\n{process.stdout.decode()}\n{process.stderr.decode()}", + fg="yellow", + ) + return False + + def check_stderr(self, stderr: tempfile.TemporaryFile) -> None: + stderr.seek(0) + if contents := stderr.read(): + click.secho( + f" [ LOG] Captured stderr\n\n{contents.decode()}\n", + fg="yellow" + ) + + def execute_test_case(self) -> bool: + stdin = None + stdout = None + stderr = tempfile.TemporaryFile() + success = True + + if self.config.get("has_stdin"): + stdin = open(f"{self.test_case}.in", "r") + + if self.config.get("capture_stdout"): + stdout = open(f"{self.test_case}.out_produced", "w") + + try: + self.process = subprocess.run( + [f"build/{self.target}", *self.__preprocess(self.config["args"])], + cwd=os.getcwd(), + stdin=stdin, + stdout=stdout, + stderr=stderr, + timeout=5, + ) + except subprocess.TimeoutExpired: + success = False + + self.check_stderr(stderr) + success = self.check_stdio() and success + success = self.check_specialized_test() and success + + stderr.close() + + return success + + +def load_config(path: str) -> Any: + path_to_config = Path(path) + if not path_to_config.exists(): + return None + + with open(path_to_config, "r") as config_file: + return json.load(config_file) + + +@cli.command() +@click.argument("target") +@click.option("--global-config/--no-global-config", default=True) +def test(target, global_config): + passed, failed = 0, 0 + + config = False + if global_config: + config = load_config(f"./{target}.json") + + test_cases = set( + map(lambda x: str(Path(x).with_suffix("")), glob.glob(f"test-{target}/*")) + ) + + for test_case in test_cases: + individual_config_exists = Path(f"{test_case}.json").exists() + if global_config == individual_config_exists: + continue + + click.secho(f"[TEST] {test_case}") + if TestCase(target, test_case, config).execute_test_case(): + click.secho("[PASS] Test passed.\n", fg="green") + passed += 1 + else: + click.secho("[FAIL] Test failed.\n", fg="red") + failed += 1 + + total = passed + failed + click.secho(f"Passed: {passed}/{total}\tFailed: {failed}/{total}") + + +if __name__ == "__main__": + cli() diff --git a/static/files/pb161/environment/gitignore b/static/files/pb161/environment/gitignore new file mode 100644 index 0000000..d0a257c --- /dev/null +++ b/static/files/pb161/environment/gitignore @@ -0,0 +1,15 @@ +* + +!*/ + +!*.gitignore +!*.clang-format +!*.clang-tidy + +!*.txt +!*.TXT + +!*.cpp +!*.hpp +!makefile +!.rules.mk diff --git a/static/img/favicon.ico b/static/img/favicon.ico new file mode 100644 index 0000000..c01d54b Binary files /dev/null and b/static/img/favicon.ico differ